Php 如果存在,则应更新该行,否则插入新行。如何解决这个错误?

Php 如果存在,则应更新该行,否则插入新行。如何解决这个错误?,php,mysql,sql,Php,Mysql,Sql,如何解决这个错误 您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以了解在“update user_options set value='1'where name='slider'附近使用的正确语法;在第2行的“用户选项”中插入 代码 函数mysql\u updateOptions字段 如果EXIXT根据名称更新,我想插入数据 INSERT INTO subs (col1,col2,col3) VALUES (?, ?, ?) ON DUPLICATE KEY UPDAT

如何解决这个错误

您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以了解在“update user_options set value='1'where name='slider'附近使用的正确语法;在第2行的“用户选项”中插入

代码

函数mysql\u updateOptions字段

如果EXIXT根据名称更新,我想插入数据

INSERT INTO subs
  (col1,col2,col3)
VALUES
  (?, ?, ?)
ON DUPLICATE KEY UPDATE
  Col1     = VALUES(value1),
  Col2     = VALUES(value2);
根据你的问题

INSERT INTO values
  (name,value,entrydate)
VALUES
('{$obj['name']}','{$obj['value']}','{$obj['entrydate']}')
ON DUPLICATE KEY UPDATE
  value     = VALUES(value),
  entrydate     = VALUES(entrydate)

您的代码中有3个问题:

您不应该再使用mysql_*函数了,它们已被弃用并从php7中删除。 mysql\u查询在一次调用中不能执行超过1条sql语句。这就是产生语法错误消息的原因。删除单独的update语句。 在sql语句的on duplicate key update部分中,您应该将值分配给value字段,而不是name字段

。。。value='{$obj['value']}'


在重复密钥更新时插入…使用此。它将帮助你解决你的问题。

您的语法不正确。顺便问一下,名称字段上是否有唯一的索引?是的,名称字段在SubrataDeyPappu是唯一的,然后告诉我正确的语法这是查询框架:插入到您的_表field1,field2,您的_unique_字段,…,filedN值val1,val2,…,valN在重复键上更新val1=VALUESfield1,val2=VALUESfield2,…,valN=VALUESfieldN;如果发现重复的密钥,则不应更新该唯一字段。因为它已经在那一行中,所以它会引发一个警报,提示找到了重复的键。在这种情况下,您需要更新该特定唯一字段的其他字段。如上所示,您和我的区别是什么请更正我的代码中的语法请更正我的代码我是学生,我在考试中请帮助我dude@SubrataDeyPappuplz更新我的代码我是学生,我在考试中请更正我的代码@用户请更正我的代码我是学生和我正在参加考试,请帮助我用ur suggeaction@shadow更新我的代码查看更新后的答案以获取代码提示。我不会给你一个复制粘贴解决方案。请给我复制粘贴解决方案m in exam dude plz help me@shadow我给了你需要更改的代码的相关部分。我描述了代码中的问题。把这些放在一起。areeee dude我是bscit的学生,在5 sem中我不知道有什么可以帮我给我拷贝粘贴解决方案@Shadow
INSERT INTO subs
  (col1,col2,col3)
VALUES
  (?, ?, ?)
ON DUPLICATE KEY UPDATE
  Col1     = VALUES(value1),
  Col2     = VALUES(value2);
INSERT INTO values
  (name,value,entrydate)
VALUES
('{$obj['name']}','{$obj['value']}','{$obj['entrydate']}')
ON DUPLICATE KEY UPDATE
  value     = VALUES(value),
  entrydate     = VALUES(entrydate)