我在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的东西吗?或者我怎么能克服这个问题?
答案 0 :(得分:1)
将partisayisi
替换为num
答案 1 :(得分:0)
你提供的代码没有任何问题,也许它没有做你真正需要的东西,例如num增加了两次,但是没有可见的错误使它返回0,至少不是我们能看到的
确保你提供有效的用户名,在发送到mysql之前尝试回显你的查询以查看它的真实情况,也许你自己在mysql客户端或phpmyadmin中尝试这个查询,看看是怎么回事。
另外,如果您需要的是为某些用户增加num,您可以在一次更新中执行此操作,则无需使用select来获取该数字:
UPDATE profiles set num=num+1 WHERE nick='somenick'