2010-06-27 48 views

回答

1

该函数旨在返回有关您刚才查询的数据(元数据!)的数据。插入行,更新行和删除行的操作通常不会返回结果集。

(至少不是在MySQL在某些其他数据库一样,Postgres的,还有的RETURNING条款等)

From the comments on the mysqli_stmt_result_metadata manual page

如果result_metadata()返回false,但错误/错误号/ sqlstate告诉你没有发生错误,这意味着你的查询不会产生结果集,即INSERT/UPDATE/DELETE查询而不是SELECT查询。

这是在文档中说的“如果传递给mysqli_prepare()的语句是产生结果集的语句,mysqli_stmt_result_metadata()返回结果对象”,但它可能并不清楚这是什么引起的究竟。

+0

噢谢谢你,但是接着如何检测在调用结果元数据函数时是否有错误,或者它是插入/更新/删除查询? – Rihards 2010-06-27 21:31:16

+0

[检查错误](http://us2.php.net/manual/en/mysqli-stmt.error.php)或在[SQLSTATE]戳(http://us2.php.net/manual/ en/mysqli-stmt.sqlstate.php) - 如果它们包含错误,那就是你的错误。如果它们不包含错误,则不会有错误。 – Charles 2010-06-27 23:16:27