mysql_num_rows有什么问题?这是返回错误

时间:2013-01-28 10:26:30

标签: php mysql mysql-num-rows

我使用了这个系列,我接受了这个视频,mysql_num_rows从一开始就一直在惹恼我。 http://www.youtube.com/watch?v=HP75yyjHgTg 我只花了5个小时,只是试图解决所有这些mysql_num_rows错误。 在片刻我正在做个人资料页面,我收到了一个错误。 错误是:

  

警告:mysql_num_rows()期望参数1为资源,在第8行的/home/ztechrel/public_html/TESTING/blarg/REMAKE/profile.php中给出null(第一行是mysql_num_rows部分)

profile.php中的代码是:

<?php include("inc/incfiles/header.php"); ?>
<?php
if(isset($_GET['u'])) {
    $username = mysql_real_escape_string($_GET['u']);

    if(ctype_alnum($username))   //check user exists
        $check = mysql_query("SELECT username,first_name FROM users WHERE username='$username'");

    if(mysql_num_rows($check)===1) 
    {
        $get = mysql_fetch_assoc($check);
        $username = $get['username'];
        $firstname = $get['first_name'];
    }
    else
    {
        echo "<h2>User Does Not Exist</h2>";
        exit();
    }
}
?>

有没有办法解决这个问题? 或者有人知道我可以写这个的另一种方式吗? 他再次使用mysql_num_rows并不会感到惊讶,有什么我可以使用而不是易于实现的东西吗? 如果您需要任何其他信息,请询问。

4 个答案:

答案 0 :(得分:0)

使用它来检查查询中的错误

$username = mysql_real_escape_string($_GET['u']);
if(ctype_alnum($username)) {
    //check user exists
    $check = mysql_query("SELECT username,first_name FROM users 
    WHERE username='$username'") or die(mysql_error());
    if(mysql_num_rows($check)===1){
        $get = mysql_fetch_assoc($check);
        $username = $get['username'];
        $firstname = $get['first_name'];
    }
    else
    {
        echo "<h2>User Does Not Exist</h2>";
        exit();
    }
}

答案 1 :(得分:0)

确保您是PHP的捕获错误。

可能是之前的语句mysql_query未执行,因此未设置结果。

如果mysql_query正确执行或注意

,请尝试使用以下内容
$check = mysql_query("SELECT username,first_name FROM users WHERE username='$username'")  or die(mysql_error()."<br>".$sql);

答案 2 :(得分:0)

这意味着您的查询不会返回任何内容。为您的查询添加echo并将其显示在浏览器中。然后复制查询并在phpmyadmin或mysql查询浏览器或其他一些mysql编辑器中运行它。尝试查找$username是否具有正确的值,或查询中的任何字段名称是否错误。

答案 3 :(得分:0)

确保变量$username不为空。ctype_alnum返回false。所以$query是空的。

<?php include("inc/incfiles/header.php"); ?>
<?php

    if(isset($_GET['u'])) {
        $username = mysql_real_escape_string($_GET['u']);

        if ($username != "" && if(ctype_alnum($username))) {
            $check = mysql_query("SELECT username,first_name FROM users WHERE username='$username'");

            if(mysql_num_rows($check)===1) 
            {
                $get = mysql_fetch_assoc($check);
                $username = $get['username'];
                $firstname = $get['first_name'];
            }
            else
            {
                echo "<h2>User Does Not Exist</h2>";
                exit();
            }
        }
    }

?>