MySQL - 增加现有值

时间:2010-07-21 15:47:35

标签: mysql increment

我有一个让我感到厌烦的问题。 我有一个非常简单的表(MyISAM),其中我有一个字段“count(INT)(11)”

这只是一个计数器,每次查看一个产品/项目时都会递增。 问题是查询递增2而不是1。

IE中。 实际值= 10

比我跑: mysql_query(“update table_test set count = count + 1 where id = 1”);

字段计数值变为12而不是11。

我想也许我的脚本运行了2x查询,然后我用这行代码完成了一个干净的文件:


    $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运行它就可以了。

有没有想过会发生什么?

非常感谢 孩子问候 Tarsis Florencio

这是我正在使用的完整代码:


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 WHERE id = 6909

其中我指定要更新的值,有效。

1 个答案:

答案 0 :(得分:0)

如果你在phpMyAdmin中包含相同的查询并且它正在运行,那么你的查询就没有问题了,你能分享你从中调用查询的代码吗?