【发布时间】:2011-10-01 15:52:44
【问题描述】:
什么时候在 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 的循环等等 在里面进行更大的操作。一世 thougt id 会很好清理它 使用 stmt-> 关闭。但它总是坏掉 aprox 后出现错误。 250 操作。正如我尝试过的那样 stmt->reset 它对我有用。
【问题讨论】:
-
我对同样的事情感到好奇...正在看这个帖子!