我创建了一个将用户名密码插入 mysql 数据库的注册程序。我现在正在尝试检查用户名是否存在。我写了下面的程序。它不工作。它显示“mysql_num_rows() 期望参数 1 是资源。” 我真的需要你的专家建议
注册.php
<?php
require 'jcon.php';
if(isset($_POST["username"], $_POST["firstname"],$_POST["password"])){
$username=$_POST["username"];
$firstname=$_POST["firstname"];
$password=$_POST["password"];
}
$query = mysql_query("SELECT * FROM member WHERE username='$username'");
if(mysql_num_rows($query) != 0)
{
echo "Username already exists";
}
else{
$sql="INSERT INTO member (username, firstname, password)
VALUES ('$username', '$firstname','$password')";}
if(!mysqli_query($con,$sql)){
die('Error: ' . mysqli_error($con));
}
echo "Dear {$firstname} ! you have been successfully registered. "
?>
最佳答案
it showing "mysql_num_rows() expects parameter 1 to be resource
这是 mysql_query
在失败时返回 false
的典型情况,因此触发了臭名昭著的:
mysql_num_rows() expects parameter 1 to be resource
这可能是由多种因素造成的。尝试在 phpMyAdmin 中运行查询或直接到数据库并查看错误或通过 mysql_error
获取最后一个 mysql 错误.
最好始终检查 mysql_query
的返回值是否为 false
或者 mysql_error
字符串是否不为空:
if ($result and empty(mysql_error()))
// everything ok
注意:永远不要混合使用 mysql_
和 mysqli_
函数。如果您必须选择,我会选择 mysqli
,因为 mysql_*
函数被认为已弃用。
关于php - 无法检查用户名是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16369710/