ホームページ >バックエンド開発 >PHPチュートリアル >mysql_result() 関数と同等の MySQLi はありますか?
MySQLi の mysql_result() 関数と同等のものはありますか?
PHP コードを MySQL から MySQLi に移行するプロセスで、開発者はよく遭遇する問題に遭遇します。 mysql_result() 関数が存在しないこと。複数の行を処理する場合、mysql_result() の効率が低下することは認められていますが、単一の結果とフィールドが関係するシナリオではその利便性は否定できません。
元々は次のコード スニペットで表現されていました:
if ($r && mysql_num_rows($r)) $blarg = mysql_result($r, 0, 'blah');
必要な MySQLi 同等の関数は次の形式になります:
if ($r && $r->num_rows) $blarg = $r->result(0, 'blah');
しかし、そのような関数は存在しません。
空白への対処
このギャップを埋めるために、mysql_result() の機能を複製するカスタム関数が登場しました:
function mysqli_result($res, $row=0, $col=0) { $numrows = mysqli_num_rows($res); if ($numrows && $row <= ($numrows-1) && $row >=0) { mysqli_data_seek($res, $row); $resrow = (is_numeric($col)) ? mysqli_fetch_row($res) : mysqli_fetch_assoc($res); if (isset($resrow[$col])) { return $resrow[$col]; } } return false; }
この関数は、mysql_result() の本質的な利便性を維持しています。同一の構文を使用します。指定された行またはフィールドが結果セットの外にある場合は false を返し、信頼性の高いデータ取得を保証します。さらに、数値フィールド オフセットとフィールド名の両方に対応し、柔軟性が向上します。
以上がmysql_result() 関数と同等の MySQLi はありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。