2010-07-21 45 views
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

其中我指定要更新的值,工作。

+1

可能是从您的网络浏览器发送的2X个请求。你能分享你的相关代码吗? – Sadat 2010-07-21 15:57:06

+0

事实上,查询HAS运行两次以获得此信息,可能是其他地方的逻辑编码错误或“双”请求(检查访问日志中的哪一个) – Wrikken 2010-07-21 16:07:47

+0

这是我的想法,但它是一个干净的文件,即使不打印任何输出。我只是按F5来运行上面的行。我已经更新了上面的代码,所以..这就是我正在运行的。该文件放置在我的根目录下。 !?!? – Varois 2010-07-21 16:13:20

回答

0

如果您在phpMyAdmin中包含相同的查询并且它正在工作,那么这对您的查询没有任何问题,您可以共享您调用查询的代码吗?