为什么这个PHP代码挂起调用mysql_query()?

我遇到了这个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;

它让它过去那么好.有任何想法吗?

更新

这不是桌子的大小.我尝试只获得五个记录,但它仍然超时.另外,用这一行:

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

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

解决方法:

等待mySQL查询返回数据所花费的时间不计入执行时间. See here.

问题很可能在代码中的其他地方 – 你所指责的函数可能在无限循环中被调用.尝试注释掉MysqL代码,看看我是否正确.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...