gpt4 book ai didi

php - 为什么此 PHP 代码在调用 mysql_query() 时挂起?

转载 作者:可可西里 更新时间:2023-11-01 07:49:23 24 4
gpt4 key购买 nike

我在使用此 PHP 脚本时遇到问题,出现错误

Fatal error: Maximum execution time of 30 seconds exceeded in /var/www/vhosts/richmondcondo411.com/httpdocs/places.php on line 77

代码卡在这里:

function getLocationsFromTable($table){

$query = "SELECT * FROM `$table`";
if( ! $queryResult = mysql_query($query)) return null;

return mysql_fetch_array($queryResult, MYSQL_ASSOC);

}

这里(到目前为止):

function hasCoordinates($houseNumber, $streetName){

$query = "SELECT lat,lng FROM geocache WHERE House = '$houseNumber' AND StreetName = '$streetName'";
$row = mysql_fetch_array(mysql_query($query), MYSQL_ASSOC);
return ($row) ? true : false;

}

两者都与 mysql_query() 调用有关。

我知道我对每个代码片段使用了不同的样式,这是因为我一直在使用第一个代码片段来尝试隔离问题。

第一个例子中的$table是'school',这是一个肯定存在的表。我只是不知道为什么它会坐在那里等待超时而不是向我抛出错误。

站点其余部分的 mysql 查询工作正常。我试着确保我是这样连接的

//connection was opened like this:
//$GLOBALS['dbh']=mysql_connect ($db_host, $db_user, $db_pswd) or die ('I cannot connect to the database because: ' . mysql_error());

if( ! $GLOBALS['dbh']) return null;

而且它已经过去了。有什么想法吗?

更新


这不是表格的大小。我尝试只获取 5 条记录,但仍然超时。另外,用这一行:

$query = "SELECT lat,lng FROM geocache WHERE House = '$houseNumber' AND StreetName = '$streetName'";

它只是在寻找一个特定的记录,这就是它现在挂起的地方。

最佳答案

听起来 MySQL 正忙于将有效数据传输回 PHP,但由于数据太多,Apache 因超过其最大执行时间而关闭 PHP 进程之前没有时间完成该过程。

真的有必要从那个表中选择所有吗?它有多少数据?是否有 BLOBTEXT 列可以解释特定的延迟?

分析所选择的内容和您真正需要的内容是一个很好的起点。

关于php - 为什么此 PHP 代码在调用 mysql_query() 时挂起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1338157/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com