MySQL错误 - 每次调用查询时都不添加到数据库

时间:2014-04-26 21:35:26

标签: php mysql sql syntax-error

  

mysql_query(" INSERT INTO accounting(transid,unixtime,username,   描述,数量,类型,时间)价值(' $ randomtransid',' 0',' $ yti',   ' BLVD优惠完成' $ theamount','积分',' $ dateandtime')");

上面的示例代码是我的MySQL查询,但每次刷新页面时都不会将其添加到MySQL数据库中...

我该怎么办?

============= 解决:

添加"mysql_error();",后,这是错误:

  

查询失败:重复输入...以获取密钥'唯一性'

我通过更改数据库表的结构来修复此问题。

由于

=============

1 个答案:

答案 0 :(得分:1)

表名后需要一个空格。否则它看起来像一个函数。

mysql_query("INSERT INTO accounting(transid, unixtime, username, description, amount, type, time) VALUES('$randomtransid', '0', '$yti', 'BLVD Offer Completion', '$theamount', 'points', '$dateandtime')");
                                ^^^^^^^ 
                                  HERE

应该是:

mysql_query("INSERT INTO accounting (transid, unixtime, username, description, amount, type, time) VALUES('$randomtransid', '0', '$yti', 'BLVD Offer Completion', '$theamount', 'points', '$dateandtime')");

一些注意事项:

  1. 如果您在代码中检查了错误,那么您可以快速轻松地抓住这一点。始终寻找并处理错误。在你的情况下,调用mysql_error()就可以了。

  2. You shouldn't use mysql_* functions in new code。它们不再被维护and are officially deprecated。请参阅red box?转而了解prepared statements,并使用PDOMySQLi - this article将帮助您确定哪个。如果您选择PDO,here is a good tutorial

  3. 由于我无法在您的代码中明确地处理此问题,因此我必须假设您是 向SQL injections开放。