Bal*_*ala 5 php mysql pdo yii mysql-escape-string
众所周知,我们不能在Yii等框架中使用原始MySQL查询.我想mysql_escape_string在我的项目中使用,该项目在Yii框架中运行,以摆脱用户输入中的SQL注入.
我知道mysql_escape_string在PHP 5.5中已弃用,我有一个PDO替代方案.Yii框架中的替代方法是什么,以及mysql_escape_string()的PDO方式是什么?
mysql_escape_stringPDO中的替代方法是使用预准备语句.以Yii为例:
$user = Yii::app()->db->createCommand()
->select('username, password')
->from('tbl_user')
->where('id=:id', array(':id'=>$_GET['userId']))
->queryRow();
Run Code Online (Sandbox Code Playgroud)
(来自Yii参考文档http://www.yiiframework.com/doc/api/1.1/CDbCommand)
通过准备语句中的占位符传递参数时,可以保护您免受SQL注入.
最好使用预准备语句进行自动参数转义。然而,CDbConnection 的这种方法也应该能达到目的:
Yii::app()->db->quoteValue($your_value);
Run Code Online (Sandbox Code Playgroud)
本质上,这引用了一个在查询中使用的字符串值,它是PDO::quote().
在这里阅读更多内容。
| 归档时间: |
|
| 查看次数: |
10255 次 |
| 最近记录: |