2012-01-03 6 views
1
mysql_query ("INSERT INTO `items` (`item_did_sell`, `sold_for`, `bought_by_paddle`) 
       SELECT ('1','{$sold_for}','{$paddle_number}') 
       FROM `items` WHERE index_number={$index_number}") or die('error!!!' . mysql_error()); 

Im получаю эту ошибку:Условный INSERT ошибка MySQL запрос

error!!!Operand should contain 1 column(s) 

И я не понимаю, почему.

Спасибо за помощь!

EDIT: Вот это с PHP VARS заменяются значениями тестов:

mysql_query ("INSERT INTO `items` (`item_did_sell`, `sold_for`, `bought_by_paddle`) 
       SELECT ('1','2500','111') 
       FROM `items` WHERE index_number=555") or die('error!!!' . mysql_error()); 
+0

Почему '{...}' вокруг ваших значений? – drdwilcox

+0

они являются переменными php – lampwins

+0

Вы можете распечатать эту инструкцию SQL со значениями ваших переменных. Если это не показывает вашу проблему напрямую, по крайней мере, нам будет легче найти что-нибудь. – Nicolas78

ответ

2

Синтаксис SELECT не имеет скобку () вокруг списка.

Удалить их из SELECT списка:

mysql_query ("INSERT INTO `items` (`item_did_sell`, `sold_for`, `bought_by_paddle`) 
       SELECT '1','{$sold_for}','{$paddle_number}' 
       FROM `items` WHERE index_number={$index_number}") 
    or die('error!!!' . mysql_error()); 

Если, с другой стороны (как я понимаю из комментариев), вы хотите обновить существующую строку, которая имеет index_number={$index_number}, использовать UPDATE:

mysql_query ("UPDATE `items` 
       SET `item_did_sell` = '1', 
        `sold_for` = '{$sold_for}', 
        `bought_by_paddle` {$paddle_number} 
       WHERE index_number={$index_number}") 
    or die('error!!!' . mysql_error()); 
+0

Спасибо, что сделал трюк! Но можете ли вы объяснить мне, почему вы не использовали бы скобки? Мне нравится знать, почему я делаю что-то неправильно. – lampwins

+0

Вы подаете в суд, хотите ли вы 'INSERT', а не' UPDATE', кстати? –

+0

Когда «элемент» вставлен в таблицу, «item_did_sell», «sold_for» и «purchase_by_paddle» по умолчанию установлены в NULL. Именно во время выполнения этого запроса эта информация добавляется в таблицу. Было бы лучше использовать UPDATE в этом случае? Я младший в старшей школе, просто заглядывая в mysql и php, так что это всего лишь опыт обучения. – lampwins

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