php - 我的更新查询有什么问题?

标签 php mysql sql sql-update

我遇到了 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/

相关文章:

php - 类循环创建 mysql 太多连接

PHP pdo 类 getadresses 警告和调用非对象上的成员函数prepare()

php - "Unescaping"PHP查询MySQL数据库时引用字符串

php - 如何让 PHP 5.4.40 支持 LDAP 5.4?

mysql - 使用 where 子句将数据表复制到表

PHP:关于甘特图的建议

sql - 只获取最便宜的价格?

php - Jquery 表单验证并通过 PHP 脚本使用 Mysql 数据库检查值

mysql - 选择具有多个限制的值

java - 抽象模式类型 'User_Book' 未知