2012-12-06 59 views
1

以下預備語句有5個變量。PHP Mysqli bind_result在準備插入語句期間拋出警告

INSERT INTO folder (folder_name, folder_parent_id, folder_user_id, folder_order, hk_created) VALUES (?,?,?,?,?);

我得到這樣的警告時,我打電話$_STATEMENT->bind_result($_RESULT);

Warning: mysqli_stmt::bind_result(): Number of bind variables doesn't match number of fields in prepared statement

雖然很明顯這是真實的(5個變量,1個結果變量)執行時的INSERT語句只返回true(成功)或錯誤(失敗)。爲了以防萬一丟失了某些東西,我嘗試向bind_result()提供5個變量,我仍然收到相同的消息。

Insert查詢成功執行。我應該只是@抑制警告,並把它當成PHP中的怪癖或錯誤(有時候我想知道是否有區別)或者是否有我失蹤的東西?

編輯以反映我想給5個變量來bind_result()

+1

'執行時的INSERT語句只返回true或false'。是。沒有結果綁定到。 INSERT沒有「結果」。 –

回答

2

你不能用一個INSERT查詢中使用bind_result。它沒有結果。

$_STATEMENT->execute()將返回TRUEFALSE。如果您想查看插入了多少行,請使用$_STATEMENT->affected_rows

+0

現在這樣做更有意義了,謝謝!我想我需要綁定才能得到真正的假,但我想這將是執行相同的真/假 – runspired

+0

不客氣:-) –

+0

是的,'bind_result'是從查詢返回的字段。只有'SELECT'有一個「結果」:-P –