我需要从这样的请求中选择数据库值“select * from prem_message where toid 12 and del_to 0”?我写了这个查询,但是不正确,请写下来改正:
$criteria = new CDbCriteria();
// Select a fields from the database
$criteria->select='id';
$criteria->select='from_id';
$criteria->select='to_id';
$criteria->select='msg';
$criteria->select='is_read';
$criteria->select='from_del';
$criteria->select='to_del';
$criteria->select='date';
// Where to_id == current user id and not delete
$criteria->condition='to_id=:to';
$criteria->addCondition('to_del=:del','AND');
$criteria->params=array(':to'=>Yii::app()->user->id);
$criteria->params=array(':del'=> 0 );
$model = Message::model()->findAll($criteria);
Error:
CDbException CDbCommand无法执行SQL语句:SQLSTATE [HY093]:参数号无效:绑定变量数与令牌数不匹配 . 执行的SQL语句是:SELECT date FROM prem_message t WHERE(to_id =:to)AND(to_del =:del)
2 回答
它应该改写为:
这是因为如果您分配变量几次 - 新值将覆盖前一个变量 .
你重写了params . 这必须修复你的错误: