bind_result と get_result の選択
データベース クエリのプリペアド ステートメントを使用する場合、結果を処理する適切なメソッドを選択すると、結果に大きな影響を与える可能性があります。コードの効率性と柔軟性。この記事では、結果データの取得に一般的に使用される 2 つのメソッド、bind_result と get_result の違いについて説明します。
bind_result
bind_result は、変数の割り当てを正確に制御する必要がある場合に最適です。各列にバインドされる変数を明示的に指定することで、変数の順序が返された行の構造と厳密に一致することが保証されます。このアプローチは、返される行の構造が事前にわかっており、それに応じてコードを調整できる場合に有利です。
$query1 = 'SELECT id, first_name, last_name, username FROM `table` WHERE id = ?'; $id = 5; $stmt = $mysqli->prepare($query1); /* Binds variables to prepared statement i corresponding variable has type integer d corresponding variable has type double s corresponding variable has type string b corresponding variable is a blob and will be sent in packets */ $stmt->bind_param('i',$id); /* execute query */ $stmt->execute(); /* Store the result (to get properties) */ $stmt->store_result(); /* Get the number of rows */ $num_of_rows = $stmt->num_rows; /* Bind the result to variables */ $stmt->bind_result($id, $first_name, $last_name, $username); while ($stmt->fetch()) { echo 'ID: '.$id.'<br>'; echo 'First Name: '.$first_name.'<br>'; echo 'Last Name: '.$last_name.'<br>'; echo 'Username: '.$username.'<br><br>'; }
bind_result の長所:
bind_result の短所:
get_result
get_result は、データ取得のためのより汎用性の高いソリューションを提供します。返された行のデータを含む連想/列挙配列またはオブジェクトが自動的に作成されます。このメソッドは、動的な結果構造を扱う場合、またはデータへのアクセスの柔軟性が不可欠な場合に便利です。
$query2 = 'SELECT * FROM `table` WHERE id = ?'; $id = 5; $stmt = $mysqli->prepare($query2); /* Binds variables to prepared statement i corresponding variable has type integer d corresponding variable has type double s corresponding variable has type string b corresponding variable is a blob and will be sent in packets */ $stmt->bind_param('i',$id); /* execute query */ $stmt->execute(); /* Get the result */ $result = $stmt->get_result(); /* Get the number of rows */ $num_of_rows = $result->num_rows; while ($row = $result->fetch_assoc()) { echo 'ID: '.$row['id'].'<br>'; echo 'First Name: '.$row['first_name'].'<br>'; echo 'Last Name: '.$row['last_name'].'<br>'; echo 'Username: '.$row['username'].'<br><br>'; }
get_result の長所:
get_result の短所:
結論
bind_result と get_result のどちらを選択するかは、アプリケーションの特定の要件によって異なります。 bind_result は結果データの精度と制御を提供しますが、動的データ構造の場合は扱いにくい場合があります。 get_result は柔軟性と利便性を提供しますが、古い PHP バージョンではサポートされない場合があります。各メソッドの利点と制限を理解することで、開発者はクエリ結果を処理する際に情報に基づいた意思決定を行うことができます。
以上が「bind_result」と「get_result」: クエリ結果の取得にはどちらの MySQLi メソッドを使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。