是否有相當於 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 && $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,確保資料檢索的可靠。此外,它還可以容納數字欄位偏移和欄位名稱,以增強靈活性。
以上是MySQLi 是否有與 mysql_result() 等效的函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!