使用我创建的数据库,我可以运行以 JSON 格式输出数据的搜索查询,然后将它们发送回我的网页。相当标准。
$searchQuery = "SELECT * FROM alldata where $searchBy like '%$searchValue%'" ;
$searchResult = mysqli_query($con, $searchQuery);
while ($row = mysqli_fetch_row($searchResult)) {
$item = array();
$item["dateReceived"] = convertDate($row[1]);
$item["quoteCost"] = $row[15];
$item["quoteNumber"] = $row[16];
$item["quoteExpDate"] = convertDate($row[17]);
$item["comments"] = $row[21];
$output[] = $item;
}
$out = array('aaData' => $output);
echo json_encode($out);
当我的查询过于笼统时,有些东西会失败,而且我不确定它在哪里。
我从服务器得到的响应是:
Fatal error : Allowed memory size of 134217728 bytes exhausted (tried to allocate 14680165 bytes) in C:\xampp\htdocs\....php</b> on line <b>74</b><br />
我的内存限制在 php.ini 中设置为:
memory_limit=128M
如果我进入 mySQL 并编写 SELECT * FROM
alldataWHERE name like "%a%";
我得到大约 35,000 行,每行大约有 20 列,但是只需要一瞬间。
我可以针对该表查询的数量非常小 - 我可以做些什么来解决这个问题,以便我的用户可以运行更通用的查询?
最佳答案
- 预先定义输出数组长度 => $output=array(mysql_count($query));
- 在你的 sql 查询中包含一个 LIMIT
关于php - JSON 响应对于 PHP 来说太大了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30488503/