我在MySQL中遇到了整数的问题。我正在尝试更新一个存储整数的单元格。但是,我对该单元格的类型有问题。实际上,它的类型设置为int,但当我检索数据时,我总是得到0,我相信这是因为我试图获取它的方式的问题。下面是我的代码示例;
function updateNumb($username) {
$query = "SELECT `num` FROM `profiles` WHERE `nick`='" . $username . "'";
$result = mysql_query($query, $this->conn) or die(mysql_error());
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$row['num'] = $row['num'] + 1;
$numb = (int)$row['num'] + 1;
//here I update the data.
$query = "UPDATE `profiles` SET `num`=" . $numb . " WHERE `nick`='".$username."'";
mysql_query($query, $this->conn) or die(mysql_error());
return $numb;
}会不会是因为mysql_fetch_array的东西?或者我该如何克服这个问题?
发布于 2011-05-07 22:42:15
你提供的代码没有什么问题,也许它没有做你真正需要的事情,例如,num递增两次,但没有明显的错误使它返回0,至少在我们看到的情况下不是这样。
确保你提供了有效的用户名,尝试在发送到mysql之前回显你的查询,看看它到底是什么样子,也许你可以自己在mysql客户端或phpmyadmin中尝试这个查询,看看是怎么回事。
此外,如果您只需要为某个用户递增num,您可以在一次更新中完成,您不需要使用select来获取该数字:
UPDATE profiles set num=num+1 WHERE nick='somenick'发布于 2011-05-07 21:35:51
用num替换partisayisi
https://stackoverflow.com/questions/5921370
复制相似问题