phpmyadmin mysql查询不工作没有任何错误

unguejic  于 2022-11-09  发布在  PHP
关注(0)|答案(7)|浏览(148)
$result53543534 = mysql_query("UPDATE users SET credit=credit+1 WHERE email= '{$battle_get['username']}'")
or die(mysql_error());

但是没有更新。检查了$battle_get['username']和用户名在那里。我没有得到任何错误或任何东西只是没有添加...
任何帮助都将是非常好的提前感谢

u4vypkhs

u4vypkhs1#

查看mysql_affected_rows()的结果:

if ( ! $result53543534 = mysql_query( "UPDATE users SET credit=credit+1 WHERE email= '{$battle_get['username']}'") ) {
    die( mysql_error() );
} else {
    echo "Number of rows affected: " . mysql_affected_rows() . "<br>";
}

我的语法可能不完全正确,但我希望你能理解。如果结果是0,那么你就没有指定WHERE语法,这样它实际上就引用了任何行。
如果结果大于0,那么如果你认为它没有影响任何行,那你就错了。它可能没有影响你认为应该影响的行,但这是另一个问题。
此外,echo您的sql语句,这样您就可以实际看到它在做什么。

igsr9ssn

igsr9ssn2#

尝试测试

$email = $battle_get['username'];
UPDATE users SET credit=credit+1 WHERE email= '$email'
jfewjypa

jfewjypa3#

您忘记了将查询提交到数据库,请尝试事务

mysql_query("START TRANSACTION");
mysql_query("UPDATE users SET credit=credit+1 WHERE email= '{$battle_get['username']}'");
mysql_query("COMMIT");
watbbzwu

watbbzwu4#

我建议将代码改为如下所示,它将允许您检查sql查询。尝试测试sql查询,看看它是否能运行。您可能还想在mysql控制台上运行DESCRIBE用户,看看您得到了什么样的信息。

$sql = "UPDATE users SET credit=credit+1 WHERE email= '{$battle_get['username']}'"
echo $sql;
if ( ! $result53543534 = mysql_query($sql) ) {
    die( mysql_error() );
} else {
    echo "Number of rows affected: " . mysql_affected_rows() . "<br>";
}
f87krz0w

f87krz0w5#

在连接中向用户授予UPDATE权限。用户可以执行SELECT和INSERT操作,并不意味着他们也可以自动执行UPDATE操作,您需要显式地向他们授予UPDATE权限。另外,mysql_error()不会显示任何错误,因为您的SQL语句是正确的,因此不会显示任何错误。

vvppvyoh

vvppvyoh6#

我也遇到了同样的事情,我首先在MySQL Workbench上重现了它,然后使用了那里的SQL语句,我发现(不知道为什么)在WHERE子句后添加括号可以正常工作:

UPDATE users SET credit = credit + 1 WHERE (`email`= '{$battle_get['username']}')
pkln4tw6

pkln4tw67#

请检查您是否在所有输入字段中提及name=email和name=password属性,如果输入了name=submit,请在submit中提及。

相关问题