Wann sollten vorbereitete Anweisungen in PHP geschlossen werden?
Beispiel:
$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();
Sollte ich es benutzen $stmt->close();
Hier?
Bearbeiten:
Was im PHP-Handbuch geschrieben steht und auch ein Kommentar aus dem Handbuch sagt:
Schließt eine vorbereitete Anweisung. mysqli_stmt_close() hebt auch die Zuordnung des Statement-Handles auf. Wenn die aktuelle Anweisung ausstehende oder ungelesene Ergebnisse hat, bricht diese Funktion diese ab, damit die nächste Abfrage ausgeführt werden kann.
Kommentar:
wenn Sie eine Anweisung in einer Schleife mit bind_param und so weiter für eine größere Operation wiederholen. Ich dachte, es wäre gut, es mit stmt->close zu bereinigen. aber es brach immer mit einem Fehler nach ca. 250 Operationen . Da ich es mit stmt->reset versucht habe, hat es bei mir funktioniert.
Ich bin genauso neugierig … Beobachte diesen Thread!
– Drewdin
8. Juli 2011 um 23:05 Uhr