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

时间:2014-05-09 08:07:32

标签: php mysqli prepared-statement

我对如何在内部处理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()还会关闭所有陈述吗?

1 个答案:

答案 0 :(得分:1)

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

所以,请不要打扰。