php – mysql_query更新

我有一个脚本,当用户按某些条款点击“拒绝”按钮时会运行该脚本.

当它运行时,它应该撤销对特定区域的访问权限,由于某种原因脚本不起作用 – 因为它不更新MYSQL DB也不会出现模具错误.

$username =  $_SESSION["USER"]["Username"]; 

mysql_connect("x", "y", "z") or die(mysql_error()); 
mysql_select_db("database") or die(mysql_error()); 
mysql_query("UPDATE `users` SET `SeceretArea`='Unauth' WHERE `Username`='$username'") or die(mysql_error());

最佳答案 答案更新以完成调试过程.

如果没有错误,那么为什么数据库条目没有发生有三种可能性:

>您的表中没有USERNAME列等于$database的条目.
>没有值传递给$database.
>有一个值传递给$database,但该值未被替换为查询.

根据我的个人经验,mysql_query()不一定在执行查询之前替换变量值.首先将查询字符串创建为变量,然后将其传递给mysql_query().您当前的设置不会将$username替换为其值.你能做的是:

...
$sql = "UPDATE `users` SET `SeceretArea`='Unauth' WHERE `Username`='$username'";
mysql_query($sql) or die(mysql_error());

除此之外,请检查您的表格以确保在USERNAME中有一行包含您想要的值. var_dump()你的$username,看看它是否是你想要的值.

此外,你真的应该考虑切换到mysqli或PDO.如果您不想迁移到对象模块,可以使用mysqli的过程函数.

点赞