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]
有关于此的任何想法吗?
答案 0 :(得分:1)
看起来非常常见的noobish重写问题。
大多数人设置重写以使index.php充当404处理程序。
因此,如果有一些错过的请求,它将被重定向到索引。现在让我们谈谈favicon.ico ......
要解决该问题,您必须极大地限制index.php活动。它应始终检查正确的参数,否则发出404。
答案 1 :(得分:0)
您的查询看起来很好,正如Reiner Gereck所说,在某些情况下,您的代码很可能会多次执行查询。
您可以通过一些简单的调试来检查:
每次执行此查询时,都要回复一些内容,例如echo "I'm incrementing $carID"<br/>
。
然后执行此代码运行所需的任何操作,并计算出现的次数。如果它看起来比你预期的更频繁,你就会有一个错误。