我工作的一個while循環中查詢。但是,第二輪運行不起作用。 (在稍後結束時,某些結果得到迴應後)。我試着調用第二個查詢$stma
,但是這導致了相同的錯誤。
錯誤
Fatal error: Call to a member function bind_param() on a non-object in PATH on line 96
代碼
// Prepare Query
$stmt = $db->prepare("SELECT id, fullname, shortname FROM languages WHERE (state = '0')");
$stmt->execute();
// Get result from query.
$stmt->bind_result($lang_id, $lang_name, $lang_short);
// While Loop
while($language = $stmt->fetch()){
// Get Language Texts
$stmt = $db->prepare("SELECT id, article_id, article_language, article_text, article_recuse, article_spec FROM article_content WHERE article_id = ? AND article_language = ?");
$stmt->bind_param("is", $artikel_nummer, $lang_short); // This is line 96.
$stmt->execute();
// Get result from query.
$stmt->bind_result($t_id, $t_articleid, $t_language, $t_text, $t_recuse, $t_spec);
$stmt->fetch();
我是相當新的預處理語句,所以我不知道到底是什麼問題。我在查詢上運行了一個var_dump()
,它返回false,但是,在WHILE循環的其他地方或外部運行查詢(當我手動定義兩個變量時)。
我回應了$artikel_nummer
和$lang_short
,它返回它們的值。
問題是以下幾點:爲什麼第二個查詢沒有運行,並因此返回上述錯誤?
你不這樣做有'$ language'爲循環任何東西,也不需要'$ lang_id'或'$ lang_name'。 –
您正在覆蓋您的'$ stmt'變量,同時仍在每次迭代中嘗試從其中讀取 – Phil
您在將值綁定到它之前正在執行語句。 – Mike