YII:中的SQL错误:SQLSTATE[42000]:语法错误或访问冲突:1064

YII:中的SQL错误:SQLSTATE[42000]:语法错误或访问冲突:1064,yii,mysqli,Yii,Mysqli,我用yii编写了一个sql代码,它给出了以下错误: CDbCommand无法执行SQL语句:SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解第1行中使用“')”附近的正确语法。执行的SQL语句是:从id位于()中的用户中选择* 我不知道为什么会这样。。。。。。。。。 代码是: $t = implode(",", $array12); echo $t; $sql2 = 'SELECT * FROM users w

我用yii编写了一个sql代码,它给出了以下错误:

CDbCommand无法执行SQL语句:SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解第1行中使用“')”附近的正确语法。执行的SQL语句是:从id位于()中的用户中选择*

我不知道为什么会这样。。。。。。。。。 代码是:

$t = implode(",", $array12);
echo $t;
$sql2    = 'SELECT * FROM users where id in ('. $t. ')';
// echo $sql2; die;
$command = $connection->createCommand($sql2);
$row5    = $command->queryAll();

echo "<pre>";
print_r($row5);
echo "</pre>";

而且它工作得很好,我不知道如何处理我的sql。

当$array12为空时,您出现了错误:

从id位于()的用户中选择*(在错误消息末尾检查整个sql)

您必须检查以计算$array12中的元素:


我试图准确地运行您的代码,但没有出现任何错误,而且运行良好。你确定你在做这里写的事吗?
$sql2    = 'SELECT * FROM users where id in (44,45)';
$command = $connection->createCommand($sql2);
$row5    = $command->queryAll();
if (count($array12)) {
  $t = implode(",", $array12);
  $sql2    = 'SELECT * FROM users where id in ('. $t. ')';
  // echo $sql2; die;
  $command = $connection->createCommand($sql2);
  $row5    = $command->queryAll();
} else {
  $row5    = array();
}