Mysqli语句的`close()`方法是什么?

时间:2012-04-14 23:25:02

标签: php mysqli

有人可以告诉我,例如你更新,插入,删除..你应该像mysqli_stmt::close();那样关闭吗?我检查了PHP手册,但不明白close()实际上做了什么。

示例:

$stmt = $dbh->prepare("SELECT `user_email` FROM `users` WHERE `user_email` = ? LIMIT 1");
$stmt->execute(array($email));
$stmt->close();

我的问题的下一部分是,如果我在事务中执行的每个查询的execute()之后,在事务中有多个更新查询强>我应该单独关闭它们吗? ...因为这是一个不确定我需要在每次执行()之后使用$stmt->close();的事务;或者只是在所有这些之后使用一个$stmt->close();

2 个答案:

答案 0 :(得分:9)

PDO没有close()方法,而是关闭连接,只需将数据库变量设置为null - 这将关闭连接。

$stmt = null;

要回答第二个问题,您只需关闭一次连接即可。在执行完所有需要在数据库上执行的查询之后。

答案 1 :(得分:3)

好像你正在使用mysqli close方法。 $ stmt-> close()方法只是关闭先前打开的数据库连接(http://www.php.net/manual/en/mysqli.close.php)。

编辑:如果您使用的是PDO,我根本就不明白,为什么您不利用命名参数而不是问号的可能性。也就是说,为什么很多人选择PDO而不是mysqli - 你可能会更好地全面了解查询/语句。