我有一个函数。在该函数中有一个选择查询。另一个查询应返回第一个查询中的结果数。我有这个代码:
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
所以如果有人能给我建议来解决这个问题,我真的很感激。非常感谢。
最佳答案
首先,$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。
关于php - 查询结果不会被回显,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10264199/