2012-12-06 57 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 –