我很惊讶为什么我收到这个警告:
警告: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也因为警告而没有设置。
注意:我已经检查过上一个答案,但我仍然遇到同样的错误。
答案 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...
}
}
?>