我每次都会遇到语法错误:
$skills = SubSkills::model()->findAll(array('order'=>'number DESC','condition'=>'number > 0 AND user_id=:user_id AND select = 0', 'params'=>array(":user_id" =>1),'offset'=>0,'limit'=>2,
));
如果我去掉“select = 0
”部分就可以了。
错误如下:
CDbCommand failed to execute the SQL statement: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select < 1 ORDER BY number DESC' at line 1
我认为发生这种情况是因为“SELECT”作为行名会与 MySQL 冲突。有办法避免这种情况吗?
谢谢!
最佳答案
Select 由 SQL 使用。如果您正在运行查询,请始终对列名称使用反引号:
$skills = SubSkills::model()->findAll(array('order'=>'number DESC','condition'=>'number > 0 AND `user_id` = :user_id AND `select` = 0', 'params'=>array(":user_id" =>1),'offset'=>0,'limit'=>2,
));
您使用双引号的解决方案也是解决此类冲突的有效解决方案。但我相信使用反斜线更常用,因为它提高了可读性。
关于mysql - Yii + MySQL 错误 1064,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17784467/