您好,欢迎访问一九零五行业门户网

关于PDO里自动转义的有关问题

关于pdo里自动转义的问题
我看书上说如果采用prepare 和execute 方法,还可以防止sql 注入等攻击。因为所有的变量都会
被自动转义。
然后我在表单中输入df'dfdf,结果不能输入数据。
sql语句:insert into cms_manage( admin_user, admin_pass, level, last_time ) values( 'df'dfdf', 'da39a3ee5e6b4b0d3255bfef95601890afd80709', '6', now() )
错误信息:sqlstate[42000]: syntax error or access violation: 1064 you have an error in your sql syntax; check the manual that corresponds to your mysql server version for the right syntax to use near 'dfdf', 'da39a3ee5e6b4b0d3255bfef95601890afd80709', ' at line 9
当我把数据df'dfdf用mysql_real_escape_string函数转义后,就成功了,到底prepare 和execute能不能自动转义了,是不是还要手动转义。
------解决方案--------------------
当然能!
不过你只贴出了 sql 指令,并没用有 prepare 和 execute 方法
------解决方案--------------------
我认为是你代码的问题,pdo的prepare() execute()组合的确能预防sql注入。
其它类似信息

推荐信息