/ / Колона не е намерена: 1054 Неизвестна колона 'Масив' в 'клауза за поръчка' yii - php, mysql, yii

Колоната не е намерена: 1054 Неизвестна графа "Array" в клауза за поръчки yii - php, mysql, yii

Опитвам се да потърся базата данни, като използвам CDbCriteria в Yii 1, Това, което правя, е:

$criteria->addInCondition("t.id", $dealIdArr);
$criteria->order = "FIELD(t.id, $dealIdArr)";

И това е $dealIdArr и не е празен:

Array ( [0] => 3 [1] => 2 )

Но когато стартирате скрипта, той връща грешката:

CDbCommand не успя да изпълни SQL оператор: SQLSTATE [42S22]: Колоната не е намерена: 1054 Неизвестна колона "Масив" в "клауза за поръчка".

Аз съм в състояние да разберат какво не е наред с това? Всяка помощ?

Отговори:

2 за отговор № 1

В момента добавяте масив към двете условия. Не съм много запознат с Yii, но съм сигурен, че очаква низ за поръчката - а не масив.

Можеш implode() да го преобразува в низ.

$dealIdStr = implode(", ", $dealIdArr);
$criteria->addInCondition("t.id", $dealIdArr); // You can use array here
$criteria->order = "FIELD(t.id, $dealIdStr)"; // This expects a string

Тъй като понастоящем масивът ви съдържа само цели числа (3 и 2), не е необходимо да го цитирате - но ако масивът по някаква причина съдържа низове, трябва да ги цитирате в MySQL, като правите

$dealIdStr = implode("", "", $dealIdArr);
$criteria->order = "FIELD(t.id, "$dealIdStr")";

Обърнете внимание на добавените единични кавички.

Когато се опитате да използвате масив като низ, PHP просто ще отпечата "Array", което е това, което виждате сега.