我有關於這個問題的搜索stackoverflow。儘管看起來像關於這個話題有很多問題,但他們中沒有一個能夠解決我的問題。 我有一個fetch_assoc()非對象錯誤。我正在使用MySQLi和PHP 5.2。我沒有選擇改變這一點。這裏是我寫的php代碼,這讓我錯誤。PHP錯誤和MySQLi fetch_asoc()
<?php
include '_includes/db.php';
$faculty_id = trim($_GET['faculty_id']);
$message = '';
include '_includes/connection.php';
if ($db->connect_error) {
$message = $db->connect_error;
} else {
$sql = "SELECT * FROM faculty WHERE faculty_id = $faculty_id";
$result = $db->query($sql);
$row = $result->fetch_assoc();
if ($db->error) {
$message = $db->error;
}
}
任何想法爲什麼會發生這種情況?
與您在StackOverflow中已經找到的相關問題中出現的原因完全相同。錯誤的原因不會改變。如果'$ result'不是一個對象,PHP不可能調用它的方法。你需要檢查'$ db-> query' __actually__首先返回一個對象,因爲[當查詢失敗時它將返回'false'](http://php.net/mysqli-query)。 'false'是__not一個object__。你不能在__not object__上調用一個方法。 – Sherif
您的查詢失敗。直到嘗試使用由失敗返回的布爾值false之後,才能檢查失敗,從而觸發其他失敗。除此之外,你很容易受到[sql注入攻擊](http://bobby-tables.com) –
我有這個代碼運行在其他應用程序中,在同一臺服務器上,但不同的表,因爲是其他應用程序。你的[鏈接](http://stackoverflow.com/questions/2973202/mysqli-fetch-array-mysqli-fetch-assoc-mysqli-fetch-row-expects-parameter-1)解釋了錯誤的原因是我在查詢中有無效的語法,我看不到錯誤在哪裏。 – Gilbert