Php mysql_num_rows()在使用和时返回0
我正在尝试根据wordpress中的此查询检索行数:Php mysql_num_rows()在使用和时返回0,php,mysql,sql,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(
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_值时,它会给我一个行计数。但是如果我用变量填充字符串,它就不起作用了
有什么想法吗?这只意味着您的表当前不包含满足这两个条件的记录 关于代码的备注: 不需要串联,您可以将查询替换为:
$sql = "SELECT post_id FROM wprf_postmeta WHERE meta_value = '$fid' AND meta_key = 'facility_id'";
mysql.*
函数不推荐使用,您应该避免使用它们,因为它们将在未来的PHP版本中被删除。以下是。您是否有任何带有meta_键“thing_id”的条目,或者它只是var的占位符,即$thing_id
?您确定有满足这两个条件的数据集吗?除此之外,请在PHPMyAdmin中尝试该查询。查询可以成功并返回0行。显然,您的AND条件将查询限制为0行……也就是说,没有任何内容与您传递的meta_键匹配。尝试直接使用phpMyAdmin或MySQL工作台运行查询以进行验证?您的意思是:$result=mysql\u query(“从wprf\u postmeta中选择*,其中meta\u value=123,meta\u key='$thing\u id'))还是die(mysql\u error())$num\u things=mysql\u num\u rows($result);很抱歉,我应该提到-我确实在phpmyadmin中使用AND语句尝试了它,它确实返回了行以及行计数。然而,在PHP中,它并不是phpmyadmin中的同一个查询给了我匹配的记录。我复制了完整的查询字符串,并将其从我的PHP脚本粘贴到phpmyadmin中。PHP给我0的num_行,phpmyadmin给我1。@PhilTidd请复制并粘贴到这里。尝试echo
SQL字符串,而不是rownum。@dezso从wprf\u postemta中选择post\u id,其中meta\u value='21'和meta\u key='facility\u id'
@PhillTidd是否确定$fid
不包含空格或其他内容?还有一个旁注:meta_值
是否包含数值?它是什么类型的?它与wp_Posteta有何不同?