0
我遇到了一个问题,那就是我。 我有一个非常简单的表(MyISAM),我有一个字段“count(INT)(11)”MySQL - 增加一个现有值
这只是一个计数器,每次查看一个产品/项目时都会增加。 问题是查询递增2而不是1.
即, Actualfield value = 10
比我运行: mysql_query(“update table_test set count = count + 1 where id = 1”);
领域的计数值变为12,而不是11
我想,也许我的脚本运行过程中出现了2次查询,然后我做了一个干净的文件与该行:
$con = mysql_connect("localhot","user","pass");
mysql_select_db("database");
mysql_query("update table_test set count = count+1 where id = 1");
没有更多的文件..它仍然添加2 insted 1. 但如果我复制此查询并使用Phpmyadmin运行它的工作。
任何人都知道发生了什么?
感谢名单非常 小子认为 塔西斯弗洛伦西奥
这是一个完整的代码我使用:
include 'includes/constants.php'; //just db_user, db_pass and connection
include 'includes/connect.php';
//here i select the actual count value
$result = mysql_query("select count from pictures where id = 6909") or die (mysql_error()." - [select count from pictures where id = 6909]");
$row = mysql_fetch_array($result);
$aux = (int)$row['viewed'] + 1; // increment
mysql_query("UPDATE pictures SET viewed = {$aux} WHERE id = 6909");
而且我已经尝试:
mysql_query("UPDATE pictures SET viewed = viewed+1 WHERE id = 6909");
如果我运行文件使用这样的查询: 更新图片SET查看= 15其中id = 6909
其中我指定要更新的值,工作。
可能是从您的网络浏览器发送的2X个请求。你能分享你的相关代码吗? – Sadat 2010-07-21 15:57:06
事实上,查询HAS运行两次以获得此信息,可能是其他地方的逻辑编码错误或“双”请求(检查访问日志中的哪一个) – Wrikken 2010-07-21 16:07:47
这是我的想法,但它是一个干净的文件,即使不打印任何输出。我只是按F5来运行上面的行。我已经更新了上面的代码,所以..这就是我正在运行的。该文件放置在我的根目录下。 !?!? – Varois 2010-07-21 16:13:20