mysql_free_result()는 매우 큰 결과 세트를 반환할 때 차지할 메모리 양을 고려하는 경우에만 호출하면 됩니다. 관련된 모든 메모리는 스크립트가 끝나면 자동으로 해제됩니다.
SELECT 문을 실행한 후에는 커서 메모리를 해제하는 것이 좋습니다. . 메모리 해제는 PHP 함수 mysql_free_result()를 통해 수행할 수 있습니다.
//定义头文件,字符格式 header("Content-type:text/html;charset=utf-8"); error_reporting(ERR_ALL & ~ E_NOTICE); //定义本地服务器连接信息 $servername="localhost"; $username="root"; $password="admin"; $dbname="test"; //本地连接 $conn=mysqli_connect($servername,$username,$password,$dbname)or die(mysqli_error()); //要查询的信息 $sql="SELECT firstname,lastname,email FROM hello"; $result=mysqli_query($conn,$sql); //判断字符串是否执行成功 if($result){ while($row=mysqli_fetch_array($result,MYSQLI_ASSOC)) { echo $row["firstname"]." ".$row["lastname"]." ".$row["email"]."<br>"; echo "<hr>"; } }else{ die("fetch data failed!"); } //释放游标内存 mysqli_free_result($result); //关闭数据库连接 mysqli_close($conn);
참고: mysqli_free_result에 대해 이야기하는 것 외에도 mysqli_fetch_array() 함수의 두 번째 매개변수에 대해서도 언급하고 싶습니다.
mysqli_fetch_array(result,resulttype)
resulttype 매개변수:
1: MYSQLI_ASSOC. 반환된 결과 배열은 연관 배열입니다. 배열의 키는 해당 필드 이름입니다.
row[′firstname′], row['lastname'] … ..
2: MYSQLI_NUM. 반환된 결과 배열은 인덱스 배열입니다. 배열의 키는 0,1,2,3,4와 같은 숫자 인덱스입니다.
$ row[0], row[1]…..
3: MYSQLI_BOTH, 반환된 결과 배열에 필드 인덱스와 숫자 인덱스가 모두 있습니다. 이를 사용하면 위의 두 가지가 모두 가능합니다. 사용됩니다.