[英]mysqli_query only returning results when there's a WHERE statement
如果我在SQL语句中有条件,MySQL查询仅显示信息。
我已成功使用phpmyadmin中的SQL语句,效果很好。 我已经在PHP代码中更改了表名,并且它正常运行,“people”表是唯一导致问题的表。
<?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>");
?>
上面的代码产生了所需的结果,它给了我一个JSON结果,每个名字都是Karen的人。 但如果我要将其更改为$ sql =“SELECT * FROM people”,我会得到一个空白屏幕。
Json有4 MB的限制。 您可以使用$ billings的var_dump来检查从db获得的内容
经过多次挖掘和挫折之后,结果证明是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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.