我的mysql数据库中有大量数据(500行),当我试图获取所有数据时,数据不是来自数据库。
工作代码
<?php
include '../db/db.php';
$categoriesDataQuery = mysqli_query($conn, "SELECT * FROM subcategories LIMIT 268");
while ($row = mysqli_fetch_assoc ($categoriesDataQuery)) {
$categoryData [] = $row;
}
$categoryNewData = $categoryData;
print (json_encode ($categoryNewData)) ;
mysqli_close ($conn);
?>
不工作代码
<?php
include '../db/db.php';
$categoriesDataQuery = mysqli_query($conn, "SELECT * FROM subcategories");
while ($row = mysqli_fetch_assoc ($categoriesDataQuery)) {
$categoryData [] = $row;
}
$categoryNewData = $categoryData;
print (json_encode ($categoryNewData)) ;
mysqli_close ($conn);
?>
当用户选择大数据时,也许Mysql数据库有一些限制?!
谁遇到过这个?
答案 0 :(得分:1)
问题不在于SQL查询或您尝试编码的数据量。出于某种原因,json_encode
可以返回空字符串,而不是在遇到无效字符时抛出错误。
您必须确保SQL连接的charater编码与数据库表的编码匹配。例如,如果您在表上使用UTF-8编码,则需要调用以下函数在PHP客户端上强制执行相同的编码:
mysqli_set_charset($conn, "utf8");
有关详细信息,请参阅PHP docs。