我已经阅读了很多关于这个确切问题的其他线程,但由于某种原因,我无法解决我的问题。真的需要一些帮助。
if (!$username||!$password||!$email)
echo "Please fill out all fields";
else
{
//encrypt password
$password = md5($password);
//check if username already taken
$check = mysql_query("SELECT * FROM Test WHERE username = '$username'");
if (mysql_num_rows($check)>=1)
echo "Username already taken";
else
它说
警告:mysql_num_rows()期望参数1是资源,字符串 在/ Users .....中给出
if (mysql_num_rows($check)>=1)
这一行......但是当我在phpmyadmin中运行它时,它会将结果返回给我。
请帮忙
答案 0 :(得分:1)
变化:
$check = mysql_query("SELECT * FROM Test WHERE username = '$username'");
到
$check = mysql_query("SELECT * FROM Test WHERE username = '$username'") or die(mysql_error());
您将看到查询中发生的任何潜在错误。
另外,我会高度推荐使用PDO或Mysqli而不是mysql函数,因为它们已被弃用,将在未来的php版本中删除。
答案 1 :(得分:1)
尝试这样:
$query = "SELECT username FROM $this->table WHERE username='$sUser'";
$result = mysql_query($query);
$num_rows = mysql_num_rows($result);
答案 2 :(得分:0)
首先确保已正确建立与数据库的连接。
而不是直接在
中编写查询$check = mysql_query("SELECT * FROM Test WHERE username = '$username'");
将查询存储在变量中
$query = "SELECT * FROM Test WHERE username = '".$username."'";
并以
执行$check = mysql_query($query);
如果你仍然面临这个问题,
将查询回显为
echo $query;
直接在phpmyadmin中执行查询,您就可以找到问题。
我希望这会有所帮助。
答案 3 :(得分:0)
您可以尝试这样
$sql= "SELECT * FROM Test WHERE username = '".$username."'";
$check = mysql_query($sql);
我认为您的 $ check 会返回null,该用户不具有此用户名,null不能是参数 mysql_num_rows()函数。
if($check)
{
echo "Username already taken";
}
else
{
echo "Username available";
// do other actions
}
答案 4 :(得分:0)
好的,如果有人遇到同样的问题,只需在if()语句中添加两次变量,如下所示:
$Query = mysql_query($sql);
IF($Query && mysql_num_rows($Query)> 0){ // continue with the code}
这应解决问题。