【发布时间】:2012-08-29 10:03:04
【问题描述】:
我正在尝试根据这个查询在 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 进行硬编码时,它会给我一个行数。但如果我用变量填充字符串,它就不起作用了。
有什么想法吗?
【问题讨论】:
-
您是否有任何带有 meta_key "thing_id" 的条目,或者它只是一个 var 的占位符,即
$thing_id? -
您确定有满足两个条件的数据集吗?除此之外,在 PHPMyAdmin 中尝试查询。
-
一个查询可以成功并返回0行。显然,您的 AND 条件将查询限制为 0 行......即,没有任何内容与您传递的 meta_key 匹配。尝试使用 phpMyAdmin 或 MySQL Workbench 直接运行查询以进行验证。
-
thing_id 是什么?您的意思是:$result = mysql_query("SELECT * FROM wprf_postmeta WHERE meta_value = 123 AND meta_key = '$thing_id'") 或 die(mysql_error()); $num_things = mysql_num_rows($result);
-
对不起,我应该提到 - 我确实在 phpmyadmin 中使用 AND 语句尝试过它,它确实返回行以及行数。但是在 PHP 中它没有