首页 > 解决方案 > mysqli_query 仅在有 WHERE 语句时返回结果

问题描述

只有在 SQL 语句中有条件时,MySQL 查询才会显示信息。

我在 phpmyadmin 中成功使用了 SQL 语句,效果很好。我已经更改了 PHP 代码中的表名并且它运行正常,“人”表是唯一导致问题的表。

<?php
include 'dbconnectLocal.php';

$sql = "SELECT * FROM people WHERE nameFirst = 'Karen'";

$billings = array();

$billingResults = mysqli_query($connL, $sql);

while($row = mysqli_fetch_assoc($billingResults)){
    $billings[] = $row;
}

mysqli_close($connL);

$jsonOutput = json_encode($billings);

print("<pre>".json_encode($billings, JSON_PRETTY_PRINT)."</pre>");
?>

上面的代码产生了想要的结果,它给了我一个名为 Karen 的每个人的 JSON 结果。但是,如果我将其更改为 $sql = "SELECT * FROM people",我会得到一个空白屏幕。

标签: phpmysql

解决方案


经过大量的挖掘和挫折,结果是一个 json_encode 错误。特别是UTF8问题。在 php.net 上找到了这个解决方案。我在编码之前通过这个函数运行了数组,它工作得很好。

function utf8ize($d) {
if (is_array($d)) {
foreach ($d as $k => $v) {
$d[$k] = utf8ize($v);
}
} else if (is_string ($d)) {
return utf8_encode($d);
}
return $d;
}

推荐阅读