>  기사  >  데이터 베이스  >  PHP에서 쿼리 결과 세트를 처리하는 mysqli의 여러 가지 방법

PHP에서 쿼리 결과 세트를 처리하는 mysqli의 여러 가지 방법

藏色散人
藏色散人앞으로
2019-04-18 11:48:272759검색

최근에 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 클래스가 있습니다. 메서드

eek()조정 결과 집합의 임의 행에 대한 결과 포인터num_fields( )결과 집합의 필드 수(열 수)를 반환합니다.field_seek() 필드 포인터를 특정 필드 시작 위치로 조정합니다free() 결과 집합과 관련된 메모리를 해제합니다fetch_lengths() 결과 집합의 현재 행num_rows()결과 집합의 행 수를 반환합니다
field_tell() 은 필드 포인터의 위치를 ​​반환합니다.

참조: PHP 매뉴얼 (http://php.net/manual/zh/class.mysqli-result.php)

위 내용은 PHP에서 쿼리 결과 세트를 처리하는 mysqli의 여러 가지 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제