Cuándo cerrar las declaraciones preparadas en PHP?Cuándo cerrar la declaración preparada
Ejemplo:
$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();
¿Debo usar $stmt->close();
aquí?
Editar:
¿Qué está escrito en el Manual de PHP y también uno de los comentarios del manual dice:
cierra una declaración preparada. mysqli_stmt_close() también desasigna el descriptor de contexto. Si la corriente declaración tiene pendientes o no leídos resultados, esta función les cancela por lo que la siguiente consulta puede ser ejecutada.
Comentario:
si usted está repitiendo una declaración en un bucle usando bind_param y así sucesivamente en su interior para una operación más grande. yo creo que sería bueno limpiarlo con stmt-> cerrar. pero se rompió siempre con un error después de aprox. 250 operaciones. Como lo intenté con stmt-> reset funcionó para mí.
Im curioso lo mismo ... Viendo este hilo! – Drewdin