查询结果不会被回显
Posted
技术标签:
【中文标题】查询结果不会被回显【英文标题】:query result wont be echoed 【发布时间】:2012-05-03 02:23:43 【问题描述】:我有一个功能。在那个函数中有一个选择查询。另一个查询应该返回第一个查询中的结果数。我有这个代码:
function name ($f)
global $db;
...
$results = "SELECT `a` FROM `b` WHERE $where";
$results_num = ($query = mysqli_query($db, $results)) ? mysqli_num_rows($results) : 0;
echo $results;
echo $results_num;
会回显:
SELECT `a` FROM `b` WHERE `keywords` LIKE '%abc%'0
什么是 $results
而不是 $results_num
?我不明白为什么不会显示echo $results_num
以及为什么$results
末尾有0
所以如果有人可以给我建议解决这个问题,我真的很感激。非常感谢。
【问题讨论】:
不应该是mysqli_num_rows($query)
吗?
【参考方案1】:
$results_num 为 0。$results 为 - SELECT a
FROM b
WHERE keywords
LIKE '%abc%'
试试这个
echo "Results is $results <br />";
echo "Results_num is $results_num <br />";
一切都会显露出来的:)
【讨论】:
【参考方案2】:$results
是您的查询字符串。你不能像你正在做的那样将字符串传递给mysqli_num_rows()
,它需要mysqli_query()
返回的结果集标识符。在您的情况下,它是 $query
(您可能想更改变量名以使其更有意义,顺便说一句)。
【讨论】:
【参考方案3】:首先,$results_num
为零并且正在输出(这就是为什么在输出末尾有一个0
)。那是因为这段代码是错误的:
$results_num = ($query = mysqli_query($db, $results)) ? mysqli_num_rows($results) : 0;
稍微说一下:
$query = mysqli_query($db, $results);
$results_num = $query ? mysqli_num_rows($results) : 0;
而第二行实际上应该是:
$results_num = $query ? mysqli_num_rows($query) : 0;
您需要将查询句柄传递给mysqli_num_rows()
,而不是 SQL。
【讨论】:
以上是关于查询结果不会被回显的主要内容,如果未能解决你的问题,请参考以下文章