Php 何时关闭准备好的报表
何时关闭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
$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语句而不关闭第一个语句时,我会得到一个错误(请参阅)。我不太清楚为什么,因为我从来没有读过这是至关重要的