如何在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];