使用DAO或其他东西在Yii 2中的mysqli_real_escape_string?

时间:2014-12-03 09:12:35

标签: php yii yii2

我正在使用Yii 2并且即将首次开始使用数据库,并且想知道Yii 2是否还有其他东西应该用于为数据库准备数据,例如标准mysqli_real_escape_string函数还是我应该使用它?

我没有使用预先准备好的陈述,我通过他们的database access objects访问数据库,并想知道我是如何逃避传递给它的数据的?

我找到了quoteValue方法,但它包含在Yii所谓的Connection represents a connection to a database via PDO.内,所以我不确定它是否是正确的方法?

2 个答案:

答案 0 :(得分:13)

正如您所说,您应该使用quoteValue

如果你的dao组件名称是db,那么你应该尝试:

$quoteValue = \Yii::$app->db->quoteValue($value);

答案 1 :(得分:1)

Yii2使用param绑定,因此将任何用户输入作为参数传递,而不是通过连接直接传递给SQL。

$query->where('status=:status', [':status' => $status]);
//or
$query->where('status=:status');
$query->addParams([':status' => $status]);
//or
$query->where(['status' => 10]);

参考http://www.yiiframework.com/doc-2.0/guide-db-query-builder.html#where