由于一些驱动不支持原生的预处理语句,因此PDO可以完全模拟预处理.PDO的模拟预处理是默认打开的,即便MYSQL驱动本身支持预处理,在默认打开的状态下,PDO是不会用到MYSQL本身提供的预处理功能.PDO会把SQL语句进行模拟预处理之后会发送给MYSQL一个原始的SQL语句. 而这种方式很诡异的是如果预处理的SQL语句中需要处理的字段不是表中的字段时,PDO会对绑定的参数无脑添加单引号,因而导致了异常或查询不到结果. 解决这种问题的方法是设置PDO不去模拟预处理,而是交给MYSQL本身去做.方…