在php编写程序中,我们可以使用类似如下的PDO预处理绑定语句来有效的防止sql注入问题:
$stmt = $dbh -> prepare ( "INSERT INTO REGISTRY (name, value) VALUES (:name, :value)" );
$stmt -> bindParam ( ':name' , $name );
$stmt -> bindParam ( ':value' , $value );
$name = 'one' ;
$value = 1 ;
$stmt -> execute ();
或者使用?号占位符来达到相同的效果:
$stmt = $dbh -> prepare ( "INSERT INTO REGISTRY (name, value) VALUES (?, ?)" );
笔者有一点表示很不理解,就是在PDO底层是如何处理该sql语句的,可以这么有效的防止注入问题。
请大家指点一下...thanks
之前学参数化查询的时候看过的一篇Blog 供题主参考
参数化查询为什么能够防止SQL注入- LoveJenny - 博客园