Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 函数返回的结果集上的mysqli_free_result()_Php_Mysqli - Fatal编程技术网

Php 函数返回的结果集上的mysqli_free_result()

Php 函数返回的结果集上的mysqli_free_result(),php,mysqli,Php,Mysqli,我有一个函数执行简单查询并返回结果集: function getAdmins($dbcon) { $qry = "SELECT * "; $qry .= "FROM admins "; $result = mysqli_query($dbcon, $qry); if (!$result) die("Admin query failed"); return $result; } 我想知道当我这样做的时候到底发生了什么: $admin_result

我有一个函数执行简单查询并返回结果集:

function getAdmins($dbcon) {

    $qry  = "SELECT * ";
    $qry .= "FROM admins ";
    $result = mysqli_query($dbcon, $qry);
    if (!$result) die("Admin query failed");

    return $result;

}
我想知道当我这样做的时候到底发生了什么:

$admin_result = getAdmins($dbcon);
// do stuff with $admin_result
mysqli_free_result($admin_result);

我是从
getAdmins()
返回对我在那里创建的
$result
变量的引用并释放该变量,还是在
$admin\u result
中创建
$result
的副本,并在函数返回时释放原始的
$result
?然后我是否也需要像现在这样释放
$admin\u result
?我只是想知道这个过程到底发生了什么。我习惯使用C语言,如果是内存管理,则会出现一些问题。

您可以使用spl\u object\u hash来检测$admin\u result和$result是否是同一个对象

在getAdmins函数中:

echo 'hash of $result is '. spl_object_hash($result) . '<br/>';
return $result;
echo“$result的哈希为”。spl\u对象\u散列($result)。'
; 返回$result;
然后

$admin_result = getAdmins($dbcon);
echo 'hash of $admin_result is '. spl_object_hash($admin_result) . '<br/>';
$admin\u result=getAdmins($dbcon);
echo“$admin\u结果的哈希为”。spl\u object\u hash($admin\u result)。'
如果两个散列相同,则表示它们是相同的对象