Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql_num_rows()在使用和时返回0_Php_Mysql_Sql - Fatal编程技术网

Php mysql_num_rows()在使用和时返回0

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(

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


有什么想法吗?

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

关于代码的备注: 不需要串联,您可以将查询替换为:

$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有何不同?