MySql递增字段,值为0(零)

时间:2011-02-11 10:14:32

标签: php mysql

HY,

当我尝试从类型为int(11)且值为0(零)的列中增加一个字段时出现问题。

以下是查询:UPDATE Cars SET Number = Number+1 WHERE CarID='$carID'

问题是如果Number的值为零,则增量的结果为2.对于任何其他值,增量都可以正常工作。

有什么想法吗? 提前谢谢。

稍后编辑:问题不在于mysql查询。我想我的代码中有一个错误。我动态创建页面(一切都通过index.php文件,我使用require_once作为包含文件),只有当我第一次访问页面或者进行CTRL + F5刷新时才会出现问题。我在.htaccess文件中也有一些重写规则。

RewriteRule ^cars/([0-9]+)/([^\n]+)\.html index.php?page=cars&carID=$1&title=$2 [NC,B,L]

RewriteCond %{THE_REQUEST} /index\.php\?page=cars&carID=([0-9]+)&title=([^\n]+)\ HTTP/
RewriteRule ^index\.php$ http://www.cars.com/cars/%1/%2.html? [R=301,NC,L]

有关于此的任何想法吗?

2 个答案:

答案 0 :(得分:1)

看起来非常常见的noobish重写问题。

大多数人设置重写以使index.php充当404处理程序。

因此,如果有一些错过的请求,它将被重定向到索引。现在让我们谈谈favicon.ico ......

要解决该问题,您必须极大地限制index.php活动。它应始终检查正确的参数,否则发出404。

答案 1 :(得分:0)

您的查询看起来很好,正如Reiner Gereck所说,在某些情况下,您的代码很可能会多次执行查询。

您可以通过一些简单的调试来检查:

每次执行此查询时,都要回复一些内容,例如echo "I'm incrementing $carID"<br/>

然后执行此代码运行所需的任何操作,并计算出现的次数。如果它看起来比你预期的更频繁,你就会有一个错误。