php mysql查询错误有问题

时间:2019-05-09 20:50:53

标签: php mysql

我在尝试用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>';
}

2 个答案:

答案 0 :(得分:1)

match是MySQL中的保留关键字,因此,除非使用反引号(即`

)对其进行转义,否则不能将其用作列名。

将您的select语句更改为以下内容:

SELECT COUNT(*) as `match` FROM plr_items ...

甚至最好在架构中为列名指定一个非保留名称。

旁注: 您应该停止使用mysql_*扩展名。您对SQL Injections持开放态度,应该真正使用参数化的准备好的语句,而不是手动构建查询。它们由PDOMySQLi扩展名提供,自PHP 5.1起可用。

答案 1 :(得分:0)

您应该检查以下内容:

if($result)

我同意其他人的观点,即您不应该使用mysql。移至PDO。

编辑:还要检查您的查询,因为它返回的是false,这意味着它出错了。也许是表名或参数中的错字。