此代码有什么问题?
$sql=mysql_query("SELECT * FROM table WHERE id='$id'");
if($data=mysql_fetch_array($sql))
{
$count=$data['count'];
$new_count=$count+1;
$sqla="UPDATE table SET count='$new_count' WHERE id='$id'";
if(mysql_query($sqla))
{
echo "success";
}
除了UPDATE查询外,一切正常。
当我添加
时echo $new_count;
它返回正确的值。
答案 0 :(得分:2)
首先:
在第二个SQL查询中:
$sqla="UPDATE table SET count='$new_count'";
您需要指定要更新的行/行。为此,您必须使用WHERE
子句。
例如:
$sqla="UPDATE table SET count='$new_count' WHERE id='$id'";
第二名:
您的情况中缺少}
,这也可能是问题所在。如果我将代码空间化,它将如下所示:
$sql=mysql_query("SELECT * FROM table WHERE id='$id'");
if($data=mysql_fetch_array($sql))
{
$count=$data['count'];
$new_count=$count+1;
$sqla="UPDATE table SET count='$new_count' WHERE id='$id'";
if(mysql_query($sqla))
{
echo "success";
}
您的情况(从第二行开始)是否正确结束了}
?
第三名:
将mysql_fetch_array
和mysql_query
的输出保存到变量中,然后在您的条件中使用此变量:
$data = mysql_fetch_array($sql);
if($data) { ...
和
$result = mysql_query($sqla);
if($result) { ...
<强>脚注:强>
不知道您使用的表名是否确实称为table
。
如果是,那么这是一个MySQL保留字,它需要特别注意,如将其包装在刻度中或将其命名为保留字以外的其他内容。
即:
SELECT * FROM `table`
和
UPDATE `table`
参考: