繁体   English   中英

mysqli_query仅在有WHERE语句时返回结果

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM