gpt4 book ai didi

PHP mysql_num_rows() 返回错误

转载 作者:行者123 更新时间:2023-11-29 14:42:20 26 4
gpt4 key购买 nike

我有一个 PHP 登录脚本。这是人们可以创建新用户的部分。我的问题是我想检查用户是否存在,如果用户名在表中不存在,则创建新用户。但是,如果用户确实存在,我希望它在 session 变量中返回错误。这是我现在的代码。这不包括我的数据库连接,但我知道它们确实有效。其 num_rows() 作为错误写入 error_log 文件中。这是代码:

$username = mysql_real_escape_string($username);
$query = "SELECT * FROM users WHERE username = '$username';";
$result = mysql_query($query,$conn);
if(mysql_num_rows($result)>0) //user exists
{
header('Location: index.php');
$_SESSION['reg_error']='User already exists';
die();
}
else
{
$query = "INSERT INTO users ( username, password, salt )
VALUES ( '$username' , '$hash' , '$salt' );";
mysql_query($query);
mysql_close();
header('Location: index.php');

它给我的错误是

mysql_num_rows(): supplied argument is not a valid MySQL result resource in [dirctory name]

最佳答案

mysql_num_rows ()

Retrieves the number of rows from a result set. This command is only valid for statements like SELECT or SHOW that return an actual result set. To retrieve the number of rows affected by a INSERT, UPDATE, REPLACE or DELETE query, use mysql_affected_rows().

您可以执行 SELECT * 然后通过获取字段 (应该是 0 或 1)。 SELECT COUNT 将始终返回结果(当然前提是查询语法正确)。

另外,更改查询:

$query = "SELECT * FROM users WHERE username = '$username';";

进入

$query = "SELECT * FROM users WHERE username = '" 
. mysql_real_escape_string($username) . "';";

关于PHP mysql_num_rows() 返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7734730/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com