我有点不理解-在更新、插入、删除查询时,result_metadata返回false吗?因为:
$meta = $stmt->result_metadata();
if($meta === false){
throw new Exception(...));
}当我尝试运行更新、插入或删除查询时引发异常。但只有在出错时,它才应该是false。(摘自php手册)
发布于 2010-06-28 05:26:01
该函数旨在返回有关您刚刚查询的数据(元数据!)的数据。插入行、更新行和删除行的操作通常不会实际返回结果集。
(至少在MySQL中不是这样。在某些其他数据库中,例如Postgres,有RETURNING子句...)
From the comments on the mysqli_stmt_result_metadata manual page
如果result_metadata()返回false,但
/errno/sqlstate告诉您没有发生错误,这意味着您的查询不会产生结果集,即插入/更新/删除查询而不是SELECT查询。
文档中说明了这一点:“如果传递给mysqli_prepare()的语句是生成结果集的语句,则mysqli_stmt_result_metadata()将返回结果对象”,但并不是每个人都清楚这到底需要什么。
https://stackoverflow.com/questions/3128936
复制相似问题