mysql_query()返回奇怪的

时间:2016-04-21 10:41:29

标签: php mysql

我想从我的数据库中选择一个字段(MessageCounter)。它的类型是int(11)。我想增加它。

以下是我尝试选择的方法:

$q = "SELECT MessageCounter FROM " . TBL_USERS . " WHERE username = '$username'";
$result = mysql_query($q, $this->connection);

然后我尝试将1添加到其中:

$messagecount = $result + 1;
$field = "MessageCounter";

$q = "UPDATE " . TBL_USERS . " SET " . $field . " = '$messagecount' WHERE username = '$username'";
return mysql_query($q, $this->connection);

在数据库中,它更新为19。如果我添加其他号码而不是1,请说3,我会21。所以$result在某种程度上等于18。 但是,如果我尝试使用相同的未更改结果更新数据库 - 它会将字段更新为0

有谁知道发生了什么事?

2 个答案:

答案 0 :(得分:2)

您无法向$result添加1 - 首先您需要从中获取值:

$row = mysql_fetch_row($result);
$messagecount = $row[0] + 1;`
BTW - 在这个学习阶段,您应该放弃已弃用的mysql_函数并转而使用mysqli或PDO。立即行动。

答案 1 :(得分:0)

mysql_query()返回Resource而不是正常变量,您可以在其上执行添加操作。

并且n-dru建议您切换到PDOmysqli coz mysql 扩展名在PHP 5.5.0中已弃用并且已被删除来自PHP 7.0.0。

阅读here