Php-mysqli连接在调用过程之后保持


Php mysqli connection remains after call procedure

我正试图使用php的mysqli扩展在mysql数据库中执行一些查询。

我的一个查询可以很好地处理字符串查询,它可以获取数据,并且连接是关闭的(我不确定如何关闭)。

但是,当我尝试调用存储过程而不是使用字符串查询时,它可以工作,但连接仍处于睡眠状态,不会关闭。

第1部分

工作和连接关闭

public function getCities(){
    $connection = $this ->db-> connect();
    $result = $connection -> query("select * from cities");
    return $result;
}

第2部分

工作,但连接仍处于睡眠状态

public function getCities(){
    $connection = $this ->db-> connect();
    $result = $connection -> query("Call procGetCities()");

    $isclosed=mysqli_close($connection);
    if(!isclosed){
        echo "notclosed";
    } else {
        echo "closed";//returnin closed
    }
    return $result;
}

我发现了同样的问题,但没有得到答案。

mysqli_close($connection);

如果mysqli成功关闭连接,将返回true。因此,您不是在检查连接是否已关闭,而是在成功关闭连接。

成功时返回TRUE,失败时返回FALSE。

http://php.net/manual/en/mysqli.close.php


由于您在评论中添加了信息。

您要连接两次数据库,但只关闭一次连接。通常情况下,您会将连接存储在属性中并重用该连接,然后在调用或脚本结束时关闭它。这样的事情。

$connection = $this ->db-> connect();
public function getCities()
{
    $result = $connection -> query("select * from cities");
    return $result;
}
public function getCities()
{
    $result = $connection -> query("Call procGetCities()");
    return $result;
}
$isclosed=mysqli_close($connection);
if(!isclosed)
{
    echo "notclosed";
}
else
{
    echo "closed";//returnin closed
}