ホームページ > データベース > mysql チュートリアル > 「bind_result()」対「get_result()」: PHP MySQL の結果バインディング戦略はどちらを選択する必要がありますか?

「bind_result()」対「get_result()」: PHP MySQL の結果バインディング戦略はどちらを選択する必要がありますか?

Mary-Kate Olsen
リリース: 2025-01-01 09:18:10
オリジナル
857 人が閲覧しました

`bind_result()` vs. `get_result()`: Which PHP MySQL Result Binding Strategy Should You Choose?

Bind_result と Get_result: 結果バインディング戦略の比較

PHP では、MySQL データベースからクエリ結果を取得するための 2 つの異なるメソッド、bind_result() と get_result() があります。 。これらのメソッドの違いを理解すると、コードのパフォーマンスと結果の処理を最適化できます。

Bind_result()

bind_result() は、クエリでバインドされる列を明示的にリストし、それぞれに個別の変数を生成します。

使用例bind_result():

<?php
$query = 'SELECT id, first_name, last_name FROM `table` WHERE id = ?';
$id = 5;

$stmt = $mysqli->prepare($query);
$stmt->bind_param('i',$id);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($id, $first_name, $last_name);

while ($stmt->fetch()) {
    //...
}
?>
ログイン後にコピー

長所:

  • 古い PHP バージョンと互換性があります
  • それぞれに個別の変数を返します列

短所:

  • すべての変数の手動リストが必要
  • テーブル構造が変更された場合はコードの更新が必要
  • 別の配列が必要です処理

Get_result()

get_result() は、取得された行を表す連想配列または列挙配列またはオブジェクトを自動的に返します。

使用例get_result():

<?php
$query = 'SELECT * FROM `table` WHERE id = ?';
$id = 5;

$stmt = $mysqli->prepare($query);
$stmt->bind_param('i',$id);
$stmt->execute();
$result = $stmt->get_result();

while ($row = $result->fetch_assoc()) {
    //...
}
?>
ログイン後にコピー

長所:

  • 連想配列または列挙型配列/オブジェクトを返します
  • すべてのフェッチをサポートしますの結果fetch_all()
  • 結果処理を簡素化します

短所:

  • MySQL ネイティブ ドライバー (mysqlnd) が必要です

違いと制限事項

Feature bind_result() get_result()
Result Handling Separate variables Associative/enumerated array or object
MySQL Driver Older versions supported Requires mysqlnd
Code Maintenance Manual updates required Automatic result filling
Result Fetching Individual rows All rows at once

結論

bind_result() と get_result() にはそれぞれ利点と制限があります。古い PHP バージョンの場合、または別の変数が望ましい場合は、bind_result() が適切な場合があります。ただし、結果処理の単純さと一度に複数の行をフェッチする機能が重要な場合は、get_result() を選択することをお勧めします。

以上が「bind_result()」対「get_result()」: PHP MySQL の結果バインディング戦略はどちらを選択する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート