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

Php mysql查询不工作没有任何错误,php,mysql,phpmyadmin,Php,Mysql,Phpmyadmin,但不会更新。选中了$battle\u get['username'],用户名就在那里。 我没有得到任何错误或任何东西只是没有添加 任何帮助都很好,请提前感谢尝试测试 $result53543534 = mysql_query("UPDATE users SET credit=credit+1 WHERE email= '{$battle_get['username']}'") or die(mysql_error()); 您忘记将查询提交到数据库,请尝试事务 $email = $b

但不会更新。选中了
$battle\u get['username']
,用户名就在那里。 我没有得到任何错误或任何东西只是没有添加

任何帮助都很好,请提前感谢

尝试测试

      $result53543534 = mysql_query("UPDATE users SET credit=credit+1 WHERE email= '{$battle_get['username']}'")
or die(mysql_error());

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

$email = $battle_get['username'];
UPDATE users SET credit=credit+1 WHERE email= '$email'
看看结果是什么:

if(!$result5354534=mysql\u查询(“更新用户设置信用=credit+1,其中email='{$battle\u get['username']}')){
die(mysql_error());
}否则{
echo“受影响的行数:”.mysql\u受影响的行();
}
我可能没有完全正确的语法,但我希望你能理解。如果结果为0,则没有指定
WHERE
语法,因此它实际上引用任何行

如果结果大于0,那么如果您认为它不会影响任何行,那么您就错了。它可能不会影响您认为应该影响的行,但这是另一个问题


另外,
echo
您的sql语句,这样您就可以确切地看到它在做什么。

我建议将代码更改为如下,它将允许您检查sql查询。尝试测试sql查询,看看它是否运行。您可能还希望在mysql控制台上运行descripe users,以查看您获得的信息类型

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>";
}
$sql=“更新用户设置信用=信用+1,其中电子邮件={$battle\u get['username']}”
echo$sql;
if(!$result5354534=mysql\u查询($sql)){
die(mysql_error());
}否则{
echo“受影响的行数:”.mysql\u受影响的行();
}

将更新权限授予用于此连接的用户。仅仅因为用户能够选择和插入,并不意味着他们也可以自动更新,您需要显式地授予他们更新的权限。而且mysql_error()不会显示任何错误,因为您的SQL语句是正确的,因此不会显示错误。

同样的事情发生在我身上,我首先做的是在mysql Workbench上复制它,然后使用那里的SQL语句,我发现(不确定为什么)在
WHERE
子句后添加括号是有效的:

$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>";
}

您正在电子邮件字段中使用用户名?SQL很可能找不到包含该
电子邮件
地址的行。您是否尝试过将生成的SQL之一记录/打印出来并在mysql客户端中运行,以查看您的$battle\u是否。。。不包括额外的空格等?
$result5354534
?伙计。谈论“代码气味”。@nick该字段的电子邮件是否确实包含用户名“Nick12”?@nick为什么称它为“电子邮件”,而实际上它包含用户名?此外,请检查Capitalization数据库连接位于页面顶部。我使用include_once('config.php');在顶部的每个页面上,其他sql脚本都使用它,因此它正在连接…也许您的mysql设置将autocommit设置为0,将其设置为1autocommit?我在我的网站上选择并插入其他页面。。。仅更新不起作用我在phpmyadmin中手动进行更新,更新
codeddfly
用户
设置
信用
='1',其中
用户
电子邮件
='nick12'和
用户
密码
='gfdgdf'和
用户
信用
=2限制1;但我该如何编辑它呢?所以WARE只在电子邮件上?这在典型的mysql安装中通常不需要。另外,请使用回响的sql语句,在命令行客户端或PHPMyAdmin中运行它,以便更好地了解发生了什么。我想我已经修复了语法错误,请重试。如果没有,您可以编写自己的代码调用
mysql\u-infected\u-rows()
:)页面没有死亡,也没有显示任何数字或任何东西。我用phpmyadmin手动进行更新,更新
codedfly
用户
设置
信用
=“1”,其中
用户
电子邮件
=“nick12”和
用户
密码
=“gfdgdf”和
用户
信用
=2限额1;但我该如何编辑它呢?那么,我们只在电子邮件上看到了吗?
$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>";
}
UPDATE users SET credit = credit + 1 WHERE (`email`= '{$battle_get['username']}')