Php 条件插入mysql查询错误

Php 条件插入mysql查询错误,php,mysql,Php,Mysql,我收到这个错误: 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_e

我收到这个错误:

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());
我不明白为什么

谢谢你的帮助

编辑:这里用测试值替换php变量:

error!!!Operand should contain 1 column(s)
语法在列表周围没有括号
()

选择
列表中删除它们:

 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());

另一方面,如果(正如我从评论中所理解的),您希望更新具有
索引编号={$index\u编号}
的现有行,请使用

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());

为什么要用
{…}
围绕您的值?您可以用变量的值打印SQL语句。如果这还没有直接显示您的问题,至少这会让我们在这里更容易找到任何东西。也许这在PHP的更高版本中是新的,但我从未将它们包装在大括号中。只需将变量名放入查询字符串中即可。您可能希望使用${selled_for}语法,这在这里是多余的-当您的var中有一些特殊字符时,需要使用它,例如${array['key']}。下划线在没有大括号的情况下很好谢谢你,成功了!但是你能解释一下为什么不使用括号吗?我想知道我为什么做错了。你是否起诉你想
插入
,而不是
更新
?当“项目”被插入表中时,“项目曾出售”、“出售”和“购买”都默认设置为空。在该查询的运行时,该信息被添加到表中。在这种情况下使用UPDATE会更好吗?我是一名初中生,刚刚开始学习mysql和php,所以这都是一次学习经历。这个语句将(尝试)在表中添加一个新行,它不会用
index\u number={$index\u number}
更改(更新)现有行。如果您想这样做,请使用感谢您的额外帮助!
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());