0

我正在尝试根据 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 进行硬编码时,它会给我一个行数。但是,如果我用变量填充字符串,它就不起作用。

有任何想法吗?

4

1 回答 1

8

这仅意味着您的表当前不包含满足这两个条件的记录。

关于您的代码的备注:

不需要连接,您可以将查询替换为:

$sql = "SELECT post_id FROM wprf_postmeta WHERE meta_value = '$fid' AND meta_key = 'facility_id'";

mysql_*函数已被弃用,您应该避免使用它们,因为它们将在 PHP 的未来版本中被删除。这里是替代品

于 2012-09-04T17:43:18.537 回答