2014-01-09 5 views
1

У меня есть проблема с синтаксисом в запросемассив проблемы с SQL запросом

Это работает

$db->execute_query("UPDATE table SET order=2,active_status=3 WHERE id=? AND uid=?",array($id,$uid)); 

Но это не так. Это из-за массива

$db->execute_query("UPDATE table SET order=?,active_status=3 WHERE id=? AND uid=?",array($shoid,$id,$uid)); 

Я также попытался что-то вроде

$db->execute_query("UPDATE table (`order`) WHERE id=? AND uid=? VALUES (?)",array($id,$uid,$shoid)); 

Но это не работает либо.

Я получаю ошибку это

Query failed : UPDATE orsil_quote (`order`) WHERE id='38' AND uid='115' VALUES ('49') 

Проблема «49», если я могу удалить "из 49 в запросе. это будет работать, как это, я уверен,

$db->execute_query("UPDATE table SET order=?,active_status=3 WHERE id=? AND uid=?",array($shoid,$id,$uid)); 
+0

Post ваш полный PHP код – Melon

+0

много кода, и большинство из них бесполезны, если вы хотите знать, что делает $ shoid имеет, его так же, как $ shoid = '40' (последний id), я отредактирую, чтобы вставить ошибку, бросьте так, чтобы вы могли видеть –

+0

спасибо :) это было то, что я имел в виду (извините за сортировку, я был на мобильном телефоне) – Melon

ответ

1

Ваш второй запрос не сработал из-за неверных запросов на ключевое слово order, так как запрос на обновление не принимает VALUES i.e, используемый в вашем третьем запросе.

TRY

db->execute_query("UPDATE table SET `order`=?,active_status=3 WHERE id=? AND 
        uid=?",array($shoid,$id,$uid)) 
+0

, благодаря тому, что сработало –

1

Попробуйте это:

UPDATE `table` SET `order`=2,active_status=3 WHERE (id, uid) IN (?) 

Генерация пары (id, uid) как (id1, uid1), (id1, uid2), (id2, uid3), etc... и передать его запрос.

+0

order - это переменное число, отправленное в массив как $ shoid, снова проверьте вопрос –

+0

@MonchoChavez. Затем вам нужно запустить несколько запросов для каждого набора значений –

Смежные вопросы