给定的资源但仍然收到警告:mysql_fetch_assoc()期望参数1是资源,给定布尔值

时间:2017-08-07 07:49:05

标签: php mysql

我很惊讶为什么我收到这个警告:

  

警告:mysql_fetch_assoc()期望参数1是资源,   给定布尔值

我已将结果记录为资源ID#11

$sql = "SELECT * FROM `permission` where `ETPK` = $pk"; //chk allow  project name
            $result = mysql_query($sql) or die(mysql_error());
            $no_result = mysql_num_rows($result); // total rows
            echo $result;
            while($row = mysql_fetch_assoc($result))//warning showing at this line
            {
                $input = "1";
                setcookie ("permission_memberNames",  $row['MN']);
                setcookie ("permission_AllowProjects",  $row['AP']);
                setcookie ("permission_VerifyAllowProjects",  $row['VAP']);
}

我做错了我的Cookie也因为警告而没有设置。

注意:我已经检查过上一个答案,但我仍然遇到同样的错误。

1 个答案:

答案 0 :(得分:-2)

首先,您应该将mysql_real_escape_string()与引号一起使用,因为项目名称将是一个字符串。其次,您应该检查mysql_num_rows()值。如果该值大于0,则应继续mysql_fetch_assoc()否则它将发出警告:

<?php
$sql = "SELECT * FROM `permission` where `ETPK` = '" . mysql_real_escape_string($pk) . "'"; 
$result = mysql_query($sql) or die(mysql_error());
$countOfRecords = mysql_num_rows($result); // total rows
if(0 == $countOfRecords) {
    echo "No record";
    exit;
} else {
    while($row=mysql_fetch_assoc($result)) {
           // cookies code goes here...
    }
}
?>