如何在MySQLi 複製PHP mysql_result() 函數的功能
mysql_result() 函數,用於遺留開發人員能夠快速從MySQL查詢結果存取特定資料。然而,MySQLi 本身並不支援此功能,MySQLi 是經過改進和推薦的用於與 MySQL 資料庫互動的擴充功能。
取得行的替代方法
一種常見的檢索方法MySQLi 查詢結果中的資料是使用 fetch_assoc() 方法取得對應的行。以下是範例:
if ($r && $r->num_rows) { $row = $r->fetch_assoc(); $blarg = $row['blah']; }
此方法涉及多行,並且比使用 mysql_result() 等專用函數效率較低。
自訂等效函數
要複製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; }
函數接受行索引和列索引作為參數,並傳回對應的資料(如果存在)。它還處理與越界請求相關的潛在錯誤。
用法:
mysqli_result() 函數的使用方式與mysql_result() 類似:
if ($r && $r->num_rows) $blarg = mysqli_result($r, 0, 'blah');
好處和限制>
自訂mysqli_result() 函數允許更簡潔的程式碼,並減少從 MySQLi 查詢結果檢索資料所需的行數。但是,應該注意的是,該函數依賴於 PHP 的動態函數調用,與原始 mysql_result() 實作相比,可能會產生較小的效能損失。以上是如何用 MySQLi 取代 PHP 的 `mysql_result()` 函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!