-3

我在 yii 中写了一个 sql 代码,它给出了这个错误:

CDbCommand 执行 SQL 语句失败:SQLSTATE[42000]: Syntax error or access violation: 1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 ')' 附近使用正确的语法。执行的 SQL 语句是:SELECT * FROM users where id in ()

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

$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>";

当我使用 echo $sql2 和 die() 回显 sql 以查看 sql 时,它给了我这个:SELECT * FROM users where id in (44,45)

现在,我直接在as中使用了上面的sql

$sql2    = 'SELECT * FROM users where id in (44,45)';
$command = $connection->createCommand($sql2);
$row5    = $command->queryAll();

并且它的工作完美,我不知道如何处理我的 sql。

4

1 回答 1

1

$array12 为空时出现错误:

SELECT * FROM users where id in ()(在错误消息的末尾检查整个 sql)

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

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();
}
于 2012-12-12T05:48:53.027 回答