ホームページ >バックエンド開発 >PHPチュートリアル >mysql_result() 関数と同等の MySQLi はありますか?

mysql_result() 関数と同等の MySQLi はありますか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-24 18:34:16299ブラウズ

Is There a MySQLi Equivalent to the mysql_result() Function?

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 &amp;&amp; $row <= ($numrows-1) &amp;&amp; $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 サイトの他の関連記事を参照してください。

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