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
錯誤,因為 $result
是 false
,而不是物件。
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);