我无法在更新表单中看到问题,但无论我做什么都不会更新我的数据库。 我希望有人在这里帮助我。
我尝试在更新语句之后使用mysql_error(),但没有发现错误,并尝试回显更新语句,但看不到任何问题。
网址= http://localhost/maga/php/update_red.php?id=6&read=14
<?php
$host="localhost";
$pass="*****";
$user="my_db_user";
$db="my_db_name";
$tblname="artikler";
$con=mysql_connect($host, $user, $pass)or die(mysql_error());
mysql_select_db($db)or die(mysql_error());
$read=(int)$_GET['read'];
$id=$_GET['id'];
$read++;
mysql_query("UPDATE $tblname SET read='$read' WHERE id='$id'");
&GT;
答案 0 :(得分:2)
read
是reserved word,因此需要特别引用反引号才能在查询中使用
所以试试
if (!mysql_query("UPDATE $tblname SET `read`='$read' WHERE id='$id'"))
{
die("update failed with error ".mysql_error());
}
此外,$ id值没有以任何方式进行清理,因此代码容易受到SQL注入攻击。绝对值得你花时间了解这些事情。
答案 1 :(得分:0)
尝试输出您的查询:
print("UPDATE $tblname SET read='$read' WHERE id='$id'");
此外,您的ID字段是否为数字?如果是这样,请删除周围的引号。
答案 2 :(得分:0)
做一件非常简单的事,echo "UPDATE $tblname SET read='$read' WHERE id='$id'";
尝试从phpmyadmin或用于编写mysql查询的任何工具运行查询。
看看它是否给你任何错误......
答案 3 :(得分:0)
您没有在mysql_query上传递数据库连接:
mysql_query("UPDATE $tblname SET read='".$read."' WHERE id='".$id."'", $con);
答案 4 :(得分:0)
试试这段代码:
<?php
$host="localhost";
$pass="*****";
$user="my_db_user";
$db="my_db_name";
$tblname="artikler";
mysql_connect($host, $user, $pass)or die(mysql_error());
mysql_select_db($db)or die(mysql_error());
$read=(int)$_GET['read'];
$id=$_GET['id'];
$read++;
mysql_query("UPDATE $tblname SET read='$read' WHERE id='$id'");
mysql_close();
?>
答案 5 :(得分:0)
试试这个
\\In your script add the below line and try whether its working
$con=mysql_connect($host, $user, $pass)or die(mysql_error());
mysql_select_db($db,$con)or die(mysql_error());