【发布时间】: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()效率高一点。