MySQLi 查詢

query 函式接受一個有效的 SQL 字串,並直接對資料庫連線 $conn 執行它

物件導向的風格

$result = $conn->query("SELECT * FROM `people`");

程式風格

$result = mysqli_query($conn, "SELECT * FROM `people`");

警告

這裡的一個常見問題是人們只需執行查詢並期望它工作(即返回一個 mysqli_stmt 物件 )。由於此函式只接受一個字串,因此你首先要自己構建查詢。如果 SQL 中有任何錯誤,MySQL 編譯器將失敗,此時此函式將返回 false

$result = $conn->query('SELECT * FROM non_existent_table'); // This query will fail
$row = $result->fetch_assoc();

上面的程式碼將生成 E_FATAL 錯誤,因為 $resultfalse,而不是物件。

PHP 致命錯誤:在非物件上呼叫成員函式 fetch_assoc()

程式錯誤類似,但不是致命的,因為我們只是違反了函式的期望。

$row = mysqli_fetch_assoc($result); // same query as previous

你將從 PHP 獲得以下訊息

mysqli_fetch_array() 期望引數 1 為 mysqli_result,給定布林值

你可以先通過測試來避免這種情況

if($result) $row = mysqli_fetch_assoc($result);