최근에 PHP를 사용하여 mysql에 쿼리하여 결과 집합을 처리하는 방법에 대해 잘 이해되지 않는 정보를 찾아 여기에 컴파일하고 기록했습니다. (관련 권장 사항: mysql 튜토리얼)
Php는 사용합니다. mysqli_result 클래스를 사용하여 결과 집합을 다음과 같이 처리합니다. 메서드
fetch_all() | 모든 결과 행을 가져오고 결과 집합을 연관 데이터, 숫자 인덱스 배열 또는 둘 다로 반환합니다. |
fetch_array() | 결과 행을 연관 배열, 숫자 인덱스 배열 또는 둘 다로 가져옵니다. |
fetch_object() | 결과 집합의 현재 행을 개체로 반환합니다. |
fetch_row() | 열거형 배열 형식으로 결과 행을 반환합니다. |
fetch_assoc() | 연관 배열 형식으로 결과 행을 가져옵니다. 배열 . |
fetch_field_direct() | 결과 집합에 있는 단일 필드의 메타데이터를 개체로 반환합니다. |
fetch_field() | 결과 집합의 열 정보를 객체로 반환합니다. |
fetch_fields() | 결과 집합을 개체 배열 으로 나타내는 열 정보 를 반환합니다. |
fetch_all(결과 집합의 모든 행을 연관 배열로 가져옵니다)
$sql="select * from user"; $result=$link->query($sql); $row=$result->fetch_all(MYSQLI_BOTH);//参数MYSQL_ASSOC、MYSQLI_NUM、MYSQLI_BOTH规定产生数组类型 $n=0; while($n<mysqli_num_rows($result)){ echo "ID:".$row[$n]["id"]."用户名:".$row[$n]["name"]."密码:".$row[$n]["password"]."<br />"; $n++; }
fetch_array (함께 결과 행을 가져오는 연관 배열, 숫자 인덱스 배열 또는 둘 다)
$sql="select * from user"; $result=$link->query($sql); while($row=$result->fetch_array()){ echo "ID:".$row["id"]."用户名:".$row[1]."密码:".$row["password"]."<br />"; } //fetch_array方法不再有结果时返回返回NULL //其返回结果可以是关联数组也可以是数值数组索引,故$row["id"]、$row[1]都可以
fetch_object (결과 집합의 현재 행을 객체로 반환)
$sql="select * from user"; $result=$link->query($sql); while($row=$result->fetch_object()){ echo "ID:".$row->id."用户名:".$row->name."密码:".$row->password."<br />"; } //如果无更多的行则返回NULL //返回的结果是对象,要以对象的方式调用
fetch_row (열거형 배열로 결과 행 반환)
$sql="select * from user"; $result=$link->query($sql); while($row=$result->fetch_row()){ echo "ID:".$row[0]."用户名:".$row[1]."密码:".$row[2]."<br />"; } //无更多行时返回NULL //以数值下标调用数组,a[0]正确、a["id"]则不
fetch_assoc(결과 행 가져오기 연관 배열 )
$sql="select * from user"; $result=$link->query($sql); while($row=$result->fetch_assoc()){ echo "ID:".$row["id"]."用户名:".$row["name"]."密码:".$row["password"]."<br />"; } //无更多行时返回NULL //以关联索引访问数组,a["id"]正确、a[0]则不
fetch_field_direct (결과 집합에 있는 단일 필드의 메타데이터를 개체, 즉 단일 정보 열)
$sql="select * from user"; $result=$link->query($sql); $n=0; while(1){ if(!$row=$result->fetch_field_direct($n++)) break; echo "列名:".$row->name."所在表:".$row->table."数据类型:".$row->type."<br />"; } //fetch_field_direct($n)只返回单个列,所以得不断调用该方法,没有该列时返回false
fetch_field (결과를 객체로 반환 집중 열 정보)
$sql="select * from user"; $result=$link->query($sql); while($row=$result->fetch_field()){ echo "列名:".$row->name."所在表:".$row->table."数据类型:".$row->type."<br />"; } //该方法检索所有的列 //以对象方式返回列信息 //返回对象属性如:name - 列名,table - 该列所在的表名,type - 该列的类型,等
fetch_fields (결과 집합의 열 정보를 객체 배열로 반환) )
$sql="select * from user"; $result=$link->query($sql); $row=$result->fetch_fields(); foreach($row as $val){ echo "列名:".$val->name."所在表:".$val->table."数据类型:".$val->type."<br />"; } //该方法功能与目的fetch_field一样 //不一样的是该方法返回一个对象数组(如:echo $row[0]->name;输出第一列的名字),而不是一次检索一列
또 다른: 다른 mysqli_result 클래스가 있습니다. 메서드
field_tell() | 은 필드 포인터의 위치를 반환합니다. |
조정 결과 집합의 임의 행에 대한 결과 포인터 | |
결과 집합의 필드 수(열 수)를 반환합니다. | |
필드 포인터를 특정 필드 시작 위치로 조정합니다 | |
결과 집합과 관련된 메모리를 해제합니다 | |
결과 집합의 현재 행 | |
결과 집합의 행 수를 반환합니다 |
참조: PHP 매뉴얼 (http://php.net/manual/zh/class.mysqli-result.php)
위 내용은 PHP에서 쿼리 결과 세트를 처리하는 mysqli의 여러 가지 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!