-1

我使用了这个系列并且我已经完成了这个视频,并且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

4 回答 4

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();
    }
}
于 2013-01-28T10:29:27.660 回答
0

确保从 PHP 中捕获错误。

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

如果 mysql_query 执行正确,请尝试以下操作或注意

$check = mysql_query("SELECT username,first_name FROM users WHERE username='$username'")  or die(mysql_error()."<br>".$sql);
于 2013-01-28T10:29:48.410 回答
0

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

于 2013-01-28T10:30:11.643 回答
0

确保变量$username不为空。,ctype_alnum返回假。所以$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();
            }
        }
    }

?>
于 2013-01-28T11:11:58.560 回答