Php 何时关闭准备好的报表

Php 何时关闭准备好的报表,php,prepared-statement,Php,Prepared Statement,何时关闭PHP中准备好的语句 例如: $query = "insert into web_reviews (title,added_date,reviewer_home_url,read_more_link,summary) values(?,?,?,?,?)"; $stmt = $this->db->prepare($query); $stmt->bind_params($this->title,$this->added_date,$thi

何时关闭PHP中准备好的语句

例如:

    $query = "insert into web_reviews (title,added_date,reviewer_home_url,read_more_link,summary) values(?,?,?,?,?)";
    $stmt = $this->db->prepare($query);
    $stmt->bind_params($this->title,$this->added_date,$this->reviewer_home_url,$this->read_more,$this->summary);
    $stmt->execute() or die("Cannot add the date to the database, please try again.");
    $stmt->close();

    $stmt = $this->db->prepare("select id from web_reviews where title = ? and read_more = ?");
    $stmt->bind_params($this->title,$this->read_more);
    $stmt->execute();
    $stmt->bind_results($web_review_id);
    $stmt->close();
我应该使用
$stmt->close()吗这里

编辑:

PHP手册上的内容以及手册中的一条注释如下:

关闭准备好的语句。 mysqli_stmt_close()也解除分配 语句句柄。如果当前 语句已挂起或未读 结果,此函数将取消它们,因此 可以执行下一个查询

评论:

如果您在中重复一条语句 使用bind_param等的循环 在它里面进行更大的操作。我 我想最好把它清理一下 使用stmt->close。但它总是坏的 在aprox之后出现错误。250 操作。就像我试过的那样 stmt->重置它对我有效


这是close的一个很好的用法,尤其是因为您正计划进行另一个查询。对于PDO语句和MySQLi语句,我发现在清洁方面犯错误几乎总是最好的——它可以消除潜在的错误


至于有250次手术的先生们。。。我不知道真正的用例是什么。为什么他需要查询数据库250次?为什么他不能用250条记录查询一次数据库?或者,更可能的是,为什么他不能用10条记录查询数据库25次呢?

我目前无法评论,所以我只是提供一个答案。当您运行查询数据库结果的预处理语句时,除非您删除它正在存储的当前结果,否则它不会执行另一个查询$结果=$stmt->get_result()。
其次,如果需要保存第一个查询的结果以便以后使用,那么我建议使用两个结果集。第一个存储$stmt第一次执行的结果,第二个存储第二次执行的结果。这可能无法直接回答问题,但可能会帮助某些人。

我很好奇同样的事情。。。看着这条线!你说它只对清洁有益吗?因为我有一个问题,当我使用两个prepare语句而不关闭第一个语句时,我会得到一个错误(请参阅)。我不太清楚为什么,因为我从来没有读过这是至关重要的