我正在使用Yii 2
并且即将首次开始使用数据库,并且想知道Yii 2
是否还有其他东西应该用于为数据库准备数据,例如标准mysqli_real_escape_string
函数还是我应该使用它?
我没有使用预先准备好的陈述,我通过他们的database access objects访问数据库,并想知道我是如何逃避传递给它的数据的?
我找到了quoteValue方法,但它包含在Yii所谓的Connection represents a connection to a database via PDO.
内,所以我不确定它是否是正确的方法?
答案 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