【问题标题】:Page is stop working while getting large number of data页面在获取大量数据时停止工作
【发布时间】:2021-08-02 07:07:17
【问题描述】:

我编写了简单的 PHP 代码来从 MySQL 服务器获取数据,并在显示数据页面时运行 while 循环来显示数据,显示此页面无法正常工作。 HTTP 500 错误,

这是我的代码

<?php
include('dbConnection.php');
?>

<select  class="form-control m-select2" style="width:100%;" data-placeholder="Select City Name">
    <option value="">Select City</option>
    <?php
    $cityQuery = mysqli_query($connection, "select * from `city` where `delete` = 0");
    $i = 1;
    while ($cityRow = mysqli_fetch_array($cityQuery)) {
    ?>
        <option value="<?php echo $cityRow['cityId']; ?>"><?php echo $cityRow['cityName'];  ?> </option>
    <?php
    }
    ?>
</select>

删除 while 循环后,我的页面工作正常。或者即使只添加小于 200 的限制,我的页面也可以正常工作。我的城市表中有 5741 行和 3 列。我也尝试在 MySQL 查询中添加特定的 col 而不是 *,但结果与我的页面相同。 不工作。

注意:我在我的实时服务器中遇到了这个错误,在我的本地主机中它工作正常。

【问题讨论】:

  • ` ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);` 使用此代码进行错误报告
  • 您必须重新考虑 UI。包含 5000 个选项的选择不可用。
  • 我认为最好根据所选状态显示城市。首先选择州,然后根据州值显示城市。
  • 更改 php.ini 中的 memory_limit 和 timeout 限制可能会有所帮助。 PHP 错误日志应该包含有关错误的更多详细信息。发布会有所帮助。
  • 您的delete 字段是否已编入索引?这可能会改变查询本身的性能。您也可以尝试执行mysqli_fetch_all(),然后对结果进行迭代。有人说比打几次mysqli_fetch_array()效率高一点。

标签: php mysql


【解决方案1】:

更改 php.ini 中的 memory_limit 和 timeout 限制可能会有所帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多