使用AND时,mysql_num_rows()返回0

时间:2012-09-04 17:39:02

标签: php mysql sql

我试图在wordpress中根据此查询检索行数:

protected function wp_has_facility($fid)
{
    //global $wpdb;

    $fid = intval($fid);

    $sql = "SELECT post_id FROM wprf_postmeta WHERE meta_value = '".$fid."' AND meta_key = 'facility_id'";
    $result = mysql_query($sql) or die(mysql_error());

    $num_rows = mysql_num_rows($result);

    echo $num_rows;

    return $num_rows;
}

$ num_rows在运行此函数时返回0。

如果我回显查询字符串并在phpmyadmin中运行它,它会选择成功给我一些行。

经过进一步调查,看起来当我对meta_value进行硬编码时,它会给我一个行数。但是如果我用变量填充字符串它就不起作用。

有什么想法吗?

1 个答案:

答案 0 :(得分:8)

这仅表示您的表目前不包含满足两个条件的记录。

关于您的代码的备注:

不需要连接,您可以用以下代码替换查询:

$sql = "SELECT post_id FROM wprf_postmeta WHERE meta_value = '$fid' AND meta_key = 'facility_id'";
不推荐使用

mysql_*函数,您应该避免使用它们,因为它们将在未来的PHP版本中删除。以下是the alternatives