2010-04-27 77 views
-1

我想使用更新查询来更改数据库中保存的值,我尝试存储的新值都保存在php变量中。我不确定我做错了什么。MYSQL更新查询php

的mysql_query( “UPDATE SET用户状态 = '满' WHERE USER_ID = '$ USER_ID'”)或死亡(mysql_error());

这里是错误消息

重复条目 '91317691' 的关键1

在此先感谢

+1

发生了什么或没有发生什么?您是否100%确定存在具有该ID的用户记录? '$ user_id'包含什么? – 2010-04-27 18:30:16

+1

您需要更具体地了解发生的错误类型。也许发布mysql_error()的文本。 – Chaim 2010-04-27 19:03:33

+0

请同时添加'SHOW CREATE TABLE user'的输出。您是否确定您发布的查询导致此“重复条目”错误? – VolkerK 2010-04-27 19:24:04

回答

-1

我认为你需要改变

.. ''+ $ user_id +“'”...

把你的单双号后加上你的$ user_id,然后加上最后的结尾“'”(双引号,单引号,双引号)

此外,如果你没有控制$ user_id变量,你可能会打开SQL注入攻击

0

它看起来像你的user_id字段是一个整数。把“”围绕这将打破东西

尝试不带引号

mysql_query("UPDATE user SET status='full' WHERE user_id = $user_id")or die(mysql_error()); 
+1

如有必要,MySQL自动将类似“12”的东西转换为整数。 – VolkerK 2010-04-27 19:13:49

+0

它从来没有为我做过,总是搞砸我的查询 – Galen 2010-04-27 19:39:03

+0

见http://dev.mysql.com/doc/refman/5.0/en/type-conversion.html – VolkerK 2010-04-27 20:04:25

1

这意味着有独特的密钥的重复。假设您在(user_id, status)status上使用的是唯一enum,如果是这种情况,您可能已经有与您尝试更新的条目匹配的条目。

| user_id | status | 
| 1234 | full | 
| 1234 | none | 

如果不是这种情况,发布架构会有所帮助。

0

道歉,我意识到问题是在我的PHP脚本其他地方引起的,但我已经解决了它。

感谢您的指导