Mysqli::close() vs. $stmt->close()


Mysqli::close() vs. $stmt->close()

我对mysqli的准备语句是如何在内部处理的有点困惑。

mysqli::prepare($query);返回mysqli_stmt对象。文件中说,语句应该在不再需要后立即关闭。到目前为止,一切顺利。

然而,如果我调用mysqli::close(),语句仍然需要显式关闭吗?此外,语句对象是否有自己的数据库连接,并且即使在这样的情况下也能继续可靠地工作:

<?php
$oDb = new mysqli('localhost', 'root', '', 'test');
$oStmt = $oDb->prepare("INSERT INTO tbl_test (a,b,c) VALUES (?,?,?)");
$oDb->close();
$oStmt->bind_param('sss', 'Hello', 'World', '!');
$oStmt->execute();
//do some more stuff
$oStmt->close();

或者调用mysqli::close()也会关闭所有语句?

是的,调用mysqli::close()也会关闭所有语句。
如果您将此函数作为代码中的最后一个操作符调用,则也不需要调用它。

所以,不用麻烦了