ホームページ >バックエンド開発 >PHPチュートリアル >結果セット内のレコードを取得する 4 つの方法

結果セット内のレコードを取得する 4 つの方法

WBOY
WBOYオリジナル
2016-08-08 09:26:121756ブラウズ

まず SQL を使用してテーブルを作成し、テーブルにデータを挿入します
create table contactInfo(
uid mediaint(8)
unsigned NOT NULL AUTO_INCREMENT, #Contact ID
name varchar(50) NOT NULL, #Name

deparmentId char( 3 ) NOT NULL, 連絡先担当者のメールアドレス
PRIMARY KEY(uid) # ユーザー ID (つまり uid) を主キーとして設定します
);
fetch_row()、fetch_array()、fetch_assoc()、fetch_object() の 4 つの関数が使用します。結果データ行を順番に読み取る同様のメソッド。フィールドの参照方法が異なるだけです
共通点: 各呼び出しは、結果データ テーブルの終わりに達すると、自動的に次の結果レコードを返します
1。 fetch_row()
結果セットから結果レコードを取得し、その値をインデックス配列に格納する方法は、4 つの方法の中で最も便利です。
各フィールドは $row[$n] の形式で読み取る必要があります。ここで、$row は結果セットから取得されたレコードの行から返される配列であり、$n は連続整数の添字です。
インデックス配列を返すため、list() 関数と組み合わせて使用​​することもできます。
$mysqli=new mysqli("localhost","mysql_user","mysql_pwd","my_db_name");
if(mysqli_connect_errno()){
printf("接続に失敗しました: %s
" ,mysqli_connect_error());
exit();

}

$mysqli->query('set names gb2312'); すべての人の名前と電子メールが取得され、結果セットに保存されます。

$result=$mysqli->query("SELECT name,email FROM contactInfo WHERE planId='D01'");
. 人の名前とメールアドレス: ';
echo '

    ';
    while(list ($name,$email)=$result->fetch_row()){
    echo '
  1. '.$name :$email.'
  2. ';
    }
    echo '?>
    2. $result->fetch_assoc()
    このメソッドは連想配列を返します。結果レコードの場合、データのフィールド名がキーを表し、フィールドの内容が値を表します。
    $mysqli=new mysqli('localhost','mysql_user','mysql_pwd','my_db_name');
    if(mysqli_connect_errno()){
    Printf("接続に失敗しました: %s
    " ,mysqli_connect_error());
    exit();
    }

    $mysqli->query('set names gb2312');
    $result=mysqli->query('SELECT * FROM contactInfo');

    echo '';
    echo '' / th>部門番号

    ';
    echo '

    連絡先情報テーブル

    このタグは、検索エンジンが見つけやすくするためにテーブルの簡単な説明を提供します

    echo '
    User IDName 連絡先住所 連絡先電話番号 電子メール ';



    while ($ rw = $ result-& gt; fetch_assoc ()) {
    // $ result-& gt; fetch_accoc () は、$ key_name (キー値) を使用した場合でも、関連付けられた配列を返します。















    align = "cneter">';
    echo '
    '.$row['uid']&' lt;/td>';
    echo '
    '.$row[name'].';
    echo '
    '.$row['DepartmentId'].';
    echo '
    '.$row['phone'].''.$row['email'].' ; ';
    echo' & lt;/troc & gt; 🎜?>🎜3. このメソッドは fetch( )_row メソッドと fetch_assco() メソッドを使用すると、結果セットの各レコードを連想配列または数値インデックス付き配列として取得したり、連想配列とインデックス付き配列の両方として取得したりできます。デフォルトでは、両方の配列が同時に取得されます。このデフォルトの動作は、次のようにこのメソッドにさまざまな値を渡すことで変更できます。 🎜MYSQLI_ASSOC : レコードは連想配列として返され、フィールド名がキー、フィールドの内容が値です。 🎜MYSQLI_NUM : レコードは、クエリで指定されたフィールド名の順序で並べ替えられたインデックス配列として返されます。 🎜MYSQLI_BOTH : これはデフォルト値で、レコードは連想配列とインデックス配列の両方として返されます。 🎜4. $result->fetch_object()🎜 このメソッドは、前の 3 つのメソッドとは異なり、配列ではなくオブジェクトの形式で結果レコードを返します。その各フィールドにはオブジェクトの形式でアクセスする必要があり、データ列の名前は大文字と小文字が区別されます。
    $mysqli=new mysqli("localhost","mysql_user","mysql_pwd","my_db_name");
    if(mysqli_connect_errno()){
    printf("接続に失敗しました: %s
    " ,mysqli_connect_error());
    exit();

    }

    $mysqli->query("set names gb2312");
    $mysqli->query("SELECT * FROM contactInfo");

    echo ' ';
    echo ''
    ;
    echo '名前部署番号';
    ; } メソッドを呼び出すたびに、次の結果レコードが自動的に返されます。読み取り順序を変更したい場合は、結果セット オブジェクトの data_seek() メソッドを使用して、現在のレコードの位置を明示的に変更できます。結果セット オブジェクトの num_rows 属性を使用して、結果データ テーブル内のレコード数を指定することもできます。結果オブジェクトの length 属性を使用してグループを返すこともできます。配列の各要素は、上記の 4 つのメソッドを使用して最終的に読み取られる結果レコードの各フィールドの文字数です。

    上記では、結果セット内のレコードを取得する 4 つの方法と、関連する内容を紹介しました。PHP チュートリアルに興味のある友人の役に立てば幸いです。


    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

    連絡先情報テーブル

    ユーザー ID連絡先住所 連絡先番号 ;< th> e-mail</th>
    ';
    '.$rowObj->phone.'