php - 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",我会得到一个空白屏幕。
解决方案
经过大量的挖掘和挫折,结果是一个 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;
}
推荐阅读
- javascript - ApexChart 列在其他列之上
- sql-server - 使用 sqlcmd 创建表 || Azure SQL 服务器
- java - checkstyle JavadocType 仅在类/接口/枚举上
- powershell - Powershell - Get-ADUSER - 得到响应但不想要它
- angular - 动态创建表单生成器对象
- javascript - Middy 框架让我的 AWS Lambda 挂起,因此它永远不会返回响应
- python - 如何在 python 中将特定的列表元素类型更改为另一种?
- powershell - 如何通过 Azure DevOps API 发布草稿任务组
- javascript - 如果在加载 FB JS-SDK 之后创建 HTML,如何动态呈现 FB 页面插件?
- json - 如何使用 PowerShell 使用 Web 服务?