我在尝试用ITEM_ID = 13 and PLR_ID = Userid
计算所有行时遇到错误
警告:mysql_num_rows()期望参数1为资源,在第480行的C:\ xampp \ htdocs \ pages \ user_profile.php中给出布尔值
我的代码:
$result = mysql_query("SELECT COUNT(*) as match FROM plr_items WHERE ITEM_ID = '13' AND PLR_ID = '". $user_id . "' ");
if(mysql_num_rows($result))
{
$user_itemheal = mysql_fetch_assoc($result);
echo'<tr>
<td style="width:200px">HEAL:</td>
<td style="background-color: #ddffdd; width:300px;">'. $user_itemheal['match'] . '</td>
</tr>
</div>';
}
答案 0 :(得分:1)
match
是MySQL中的保留关键字,因此,除非使用反引号(即`
将您的select语句更改为以下内容:
SELECT COUNT(*) as `match` FROM plr_items ...
甚至最好在架构中为列名指定一个非保留名称。
旁注:
您应该停止使用mysql_*
扩展名。您对SQL Injections持开放态度,应该真正使用参数化的准备好的语句,而不是手动构建查询。它们由PDO或MySQLi扩展名提供,自PHP 5.1起可用。
答案 1 :(得分:0)
您应该检查以下内容:
if($result)
我同意其他人的观点,即您不应该使用mysql。移至PDO。
编辑:还要检查您的查询,因为它返回的是false,这意味着它出错了。也许是表名或参数中的错字。