ID、名前、ユーザーの 3 つの列を持つ MySQL テーブルがあります。Yii フレームワークで次の SQL を使用したいと考えています。
$sql = "SELECT * FROM my_table WHERE idName=".$name." AND user IN .$arrayOfUsers;
// $arrayOfUsers is an array of int [0]->1, etc.
私は3つの異なる方法で試しましたが、成功しませんでした:
1)
$sql = "SELECT * FROM my_table WHERE idName=".$name." AND user IN .$arrayOfUsers;
$command = $connection->createCommand($sql);
$dataReader = $command->query();
$query = $dataReader->readAll();
エラーは次のとおりです。
PHP エラー [8]
配列から文字列への変換
2)
$query = Yii::app()->db->createCommand()
->select('*')
->from('my_table')
->where(array('and', array('in', 'user', $arrayOfUsers), array('idName' => $name)))
->queryAll();
エラーは次のとおりです。
PHP エラー [8]
未定義のオフセット: 0
3)
$query = Yii::app()->db->createCommand()
->select('*')
->from('my_table')
->where(array('and', array('in', 'user', $arrayOfUsers), 'idName='.$name)))
->queryAll();
エラーは次のとおりです。
CDbException
CDbCommand は SQL ステートメントの実行に失敗しました: SQLSTATE[42000]: 構文エラーまたはアクセス違反: 1064 SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルを参照して、3 行目の 'idName=7)' 付近で使用する正しい構文を確認してください。実行された SQL ステートメントは次のとおりです。 SELECT * FROM
my_table
WHERE (user
IN ('1', '2', '3 ', '4')) AND (idName=7)