我遇到了 MySQL 更新查询的问题,它说成功但实际上并没有更新数据库记录。
require_once('auth.php');
$host="localhost"; // Host name
$username="root"; // Mysql username
$password="sysadmin"; // Mysql password
$db_name="Elite"; // Database name
$tbl_name="Triage"; // Table name
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$Reference=$_GET['Reference'];
$sql="UPDATE Triage SET directly='$directly' WHERE Reference='$Reference'";
$result=mysql_query($sql);
if($result){
echo "Successful";
echo "<BR>";
echo "<a href='list_records.php'>View result</a>";
}
else {
echo "ERROR";
}
最佳答案
您没有定义 $directly
,因此 directly
字段将更新为空字符串。请记住,如果字段未更改(即它已经是一个空字符串)并且没有发生错误,mysql_query()
仍将返回 true
。
如果 $directly
是在前一个页面上定义的,它不会自动保留到另一个页面。您必须将其保存在 $_SESSION
或其他一些媒介中,或者将其作为 $_GET
或 $_POST
变量传递。
旁注:mysql_*
已弃用,您的代码容易受到 SQL 注入(inject)攻击。考虑使用准备好的语句和绑定(bind)参数升级到 PDO 或 MySQLi。
关于php - 我的更新查询有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19421724/