如何在php类方法中释放内存

如何在php类方法中释放内存,php,mysqli,Php,Mysqli,我在课堂上展示了一部分正确的内容。 但我想听听你的建议: 如何通过函数中的$result->free()方法释放资源,并将它们放入代码中 当我返回之前的值时,在函数末尾编写它有用吗? 当我把它放在return操作符之前时,函数不起作用 提前谢谢 require_once 'ggc_config.php'; class ggc { public static function executequery($querystring, &$id){ $m

我在课堂上展示了一部分正确的内容。
但我想听听你的建议:
如何通过函数中的
$result->free()
方法释放资源,并将它们放入代码中

当我返回之前的值时,在函数末尾编写它有用吗? 当我把它放在return操作符之前时,函数不起作用

提前谢谢

require_once 'ggc_config.php';

class ggc
{       

    public static function executequery($querystring, &$id){
        $mysqli = new mysqli(_GGC_HOST_ , _GGC_USER_ , _GGC_PASSWORD_ , _GGC_DB_);
            if (mysqli_connect_errno()) {
            echo("Connect failed: ". mysqli_connect_error());
            return 0;
            }//if

        $mysqli->set_charset("utf8");
        $result=$mysqli->query($querystring); 
            if ($result===true){
            $id=$mysqli->insert_id;
            return 1;
            }//if
            else{
            return 0;
            }//else
        $result->free();
        $mysqli->close();
    }//executequeryi


    public static function getresults($querystring){
        $mysqli = new mysqli(_GGC_HOST_ , _GGC_USER_ , _GGC_PASSWORD_ , _GGC_DB_);
            if (mysqli_connect_errno()){
            die("Connect failed: ". mysqli_connect_error());
            }//if
        $mysqli->set_charset("utf8");

            if ($result = $mysqli->query($querystring)){
                while ($row = $result->fetch_row()) {
                    for ($i=0; $i<$mysqli->field_count; $i++){
                        $a[$i][]= $row[$i];
                    }//for
                }//while   
            }//if   
        return $a;
        $result->free();
        $mysqli->close();   
    }//function 

}//End of CLASS
require_once'ggc_config.php';
ggc类
{       
公共静态函数执行($querystring,&$id){
$mysqli=新的mysqli(_GGC_主机,_GGC_用户,_GGC_密码,_GGC_数据库);
if(mysqli\u connect\u errno()){
echo(“连接失败:”.mysqli_Connect_error());
返回0;
}//如果
$mysqli->set_字符集(“utf8”);
$result=$mysqli->query($querystring);
如果($result==true){
$id=$mysqli->insert_id;
返回1;
}//如果
否则{
返回0;
}//否则
$result->free();
$mysqli->close();
}//行政长官
公共静态函数getresults($querystring){
$mysqli=新的mysqli(_GGC_主机,_GGC_用户,_GGC_密码,_GGC_数据库);
if(mysqli\u connect\u errno()){
die(“连接失败:”.mysqli_Connect_error());
}//如果
$mysqli->set_字符集(“utf8”);
如果($result=$mysqli->query($querystring)){
而($row=$result->fetch_row()){
对于($i=0;$ifield\u count;$i++){
$a[$i][]=$row[$i];
}//为了
}//当
}//如果
返回$a;
$result->free();
$mysqli->close();
}//作用
}//下课
由于您的建议,我更改了我的代码如下:

需要一次“ggc_config.php”

class ggc
{       
    public static function executequery($querystring, &$id){
        $mysqli = new mysqli(_GGC_HOST_ , _GGC_USER_ , _GGC_PASSWORD_ , _GGC_DB_);
        if (mysqli_connect_errno()) {
            echo("Connect failed: ". mysqli_connect_error());
            unset($mysqli);
            return 0;
        }//if

        $mysqli->set_charset("utf8");
        $result=$mysqli->query($querystring); 
        if ($result===true){
            $id=$mysqli->insert_id;
            unset($result);
            unset($mysqli);
            return 1;
        }//if
        else{
            unset($result);
            unset($mysqli);
            return 0;
        }//else
    }//executequery


    public static function getresults($querystring){
        $mysqli = new mysqli(_GGC_HOST_ , _GGC_USER_ , _GGC_PASSWORD_ , _GGC_DB_);
        if (mysqli_connect_errno()){
            die("Connect failed: ". mysqli_connect_error());
        }//if
        $mysqli->set_charset("utf8");

        if ($result = $mysqli->query($querystring)){
            while ($row = $result->fetch_row()) {
                for ($i=0; $i<$mysqli->field_count; $i++){
                    $a[$i][]= $row[$i];
                }//for
            }//while   
        }//if   
        unset($result);
        unset($mysqli);
        return $a;
    }//function 

}//End of CLASS
ggc类
{       
公共静态函数执行($querystring,&$id){
$mysqli=新的mysqli(_GGC_主机,_GGC_用户,_GGC_密码,_GGC_数据库);
if(mysqli\u connect\u errno()){
echo(“连接失败:”.mysqli_Connect_error());
unset($mysqli);
返回0;
}//如果
$mysqli->set_字符集(“utf8”);
$result=$mysqli->query($querystring);
如果($result==true){
$id=$mysqli->insert_id;
未结算($结果);
unset($mysqli);
返回1;
}//如果
否则{
未结算($结果);
unset($mysqli);
返回0;
}//否则
}//行刑
公共静态函数getresults($querystring){
$mysqli=新的mysqli(_GGC_主机,_GGC_用户,_GGC_密码,_GGC_数据库);
if(mysqli\u connect\u errno()){
die(“连接失败:”.mysqli_Connect_error());
}//如果
$mysqli->set_字符集(“utf8”);
如果($result=$mysqli->query($querystring)){
而($row=$result->fetch_row()){
对于($i=0;$ifield\u count;$i++){
$a[$i][]=$row[$i];
}//为了
}//当
}//如果
未结算($结果);
unset($mysqli);
返回$a;
}//作用
}//下课

将返回放在自由和关闭连接之后

    $result->free();
    $mysqli->close();
    return $a;

将回路置于自由和闭合连接之后

    $result->free();
    $mysqli->close();
    return $a;

将回路置于自由和闭合连接之后

    $result->free();
    $mysqli->close();
    return $a;

将回路置于自由和闭合连接之后

    $result->free();
    $mysqli->close();
    return $a;

更新:

当然,你写它的方式有点错误。在return子句之后不能执行任何操作,因为它将结束函数的执行。返回之前,您需要释放结果

你的写作方式,包括:

$result->free();
$mysqli->close();
只要你把退货条款放在那之后,它就会起作用

$result->free();
$mysqli->close();
return $a;

更新:

当然,你写它的方式有点错误。在return子句之后不能执行任何操作,因为它将结束函数的执行。返回之前,您需要释放结果

你的写作方式,包括:

$result->free();
$mysqli->close();
只要你把退货条款放在那之后,它就会起作用

$result->free();
$mysqli->close();
return $a;

更新:

当然,你写它的方式有点错误。在return子句之后不能执行任何操作,因为它将结束函数的执行。返回之前,您需要释放结果

你的写作方式,包括:

$result->free();
$mysqli->close();
只要你把退货条款放在那之后,它就会起作用

$result->free();
$mysqli->close();
return $a;

更新:

当然,你写它的方式有点错误。在return子句之后不能执行任何操作,因为它将结束函数的执行。返回之前,您需要释放结果

你的写作方式,包括:

$result->free();
$mysqli->close();
只要你把退货条款放在那之后,它就会起作用

$result->free();
$mysqli->close();
return $a;

你根本不需要释放任何东西


但是你知道,这对你的班级来说是一个最小的问题。

你根本不需要释放任何东西


但是你知道,这对你的班级来说是一个最小的问题。

你根本不需要释放任何东西


但是你知道,这对你的班级来说是一个最小的问题。

你根本不需要释放任何东西


但这是你的类的一个最小问题,你知道。

它是我函数的正确变体。我已经按照PEAR名称约定的要求更新了变量名,并添加了$a=array();声明

 public static function getResults($queryString){
        $mysqli = new mysqli(GGC_HOST , GGC_USER_ , GGC_PASSWORD , GGC_DB);
        if (mysqli_connect_errno()){
            die("Connect failed: ". mysqli_connect_error());
        }//if
        $mysqli->set_charset("utf8");
        $a=array();        
        if ($result = $mysqli->query($queryString)){
            while ($row = $result->fetch_row()) {
                for ($i=0; $i<$mysqli->field_count; $i++){
                    $a[$i][]= $row[$i];
                }//for
            }//while   
        }//if   
        unset($result);
        unset($mysqli);
        return $a;
    }//function 
公共静态函数getResults($queryString){
$mysqli=新的mysqli(GGC_主机、GGC_用户、GGC_密码、GGC_数据库);
if(mysqli\u connect\u errno()){
die(“连接失败:”.mysqli_Connect_error());
}//如果
$mysqli->set_字符集(“utf8”);
$a=数组();
如果($result=$mysqli->query($queryString)){
而($row=$result->fetch_row()){
对于($i=0;$ifield\u count;$i++){
$a[$i][]=$row[$i];