我提出了Mine类的一部分正常工作
但我希望你的意见如下:
如何在函数中通过$result->free()
方法释放资源,并将它们放在代码中。
在函数结束时写入它是否有用,当我之前返回值时? 当我在返回操作符之前放置它时,函数不起作用。
提前致谢!
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';
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
答案 0 :(得分:2)
<强>更新强>
当然,你写它的方式有些不对。在return子句之后你不能做任何事情,因为它将结束函数执行。你需要在返回之前释放结果。
你写它的方式,用:
$result->free();
$mysqli->close();
在你之后放置return子句时也能正常工作。
$result->free();
$mysqli->close();
return $a;
答案 1 :(得分:2)
你根本不需要任何东西。
但是你知道,这对你的班级来说是个问题。
答案 2 :(得分:0)
将后的返回,并关闭连接。
$result->free();
$mysqli->close();
return $a;
答案 3 :(得分:-1)
它是我的功能的正确变体。我更新了变量名称作为PEAR NAME CONVENTION需要并添加了$ 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