首頁  >  文章  >  後端開發  >  MySQLi 是否有與 mysql_result() 等效的函數?

MySQLi 是否有與 mysql_result() 等效的函數?

Susan Sarandon
Susan Sarandon原創
2024-11-24 18:34:16282瀏覽

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');

但是,MySQLi 中不存在這樣的函數預設曲目。

解決空白

為了彌補這一差距,出現了一個自訂函數來複製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,確保資料檢索的可靠。此外,它還可以容納數字欄位偏移和欄位名稱,以增強靈活性。

以上是MySQLi 是否有與 mysql_result() 等效的函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn