我试图在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进行硬编码时,它会给我一个行数。但是如果我用变量填充字符串它就不起作用。
有什么想法吗?
答案 0 :(得分:8)
这仅表示您的表目前不包含满足两个条件的记录。
不需要连接,您可以用以下代码替换查询:
$sql = "SELECT post_id FROM wprf_postmeta WHERE meta_value = '$fid' AND meta_key = 'facility_id'";
不推荐使用 mysql_*
函数,您应该避免使用它们,因为它们将在未来的PHP版本中删除。以下是the alternatives。