众所周知,我们不能在Yii等框架中使用原始MySQL查询.我想在我的项目中使用MysqL_escape_string,该项目在Yii框架中运行,以避免用户输入中的sql注入.
我知道在PHP 5.5中不推荐使用MysqL_escape_string,而且我有一个PDO替代方案. Yii框架中的替代方法是什么,以及MysqL_escape_string()的PDO方式是什么?
最佳答案
PDO中MysqL_escape_string的替代方法是使用预准备语句.以Yii为例:
$user = Yii::app()->db->createCommand()
->select('username,password')
->from('tbl_user')
->where('id=:id',array(':id'=>$_GET['userId']))
->queryRow();
(来自Yii参考文档http://www.yiiframework.com/doc/api/1.1/CDbCommand)
通过准备语句中的占位符传递参数时,可以保护您免受sql注入.