¿Cuál es la importancia de utilizar:PHP ::: ::: preparado estados freeresult() ::: close()
$stmt->free_result();
$stmt->close();
Después de una llamada base de datos utilizando statments preparados de esta manera:
$mysqli=new mysqli("database", "db", "pass", "user");
$stmt = $mysqli->prepare("SELECT email FROM users WHERE id=? ");
$stmt->bind_param('i',$_SESSION['id']);
$stmt->execute();
$stmt->bind_result($email);
while($stmt->fetch()){
echo $email;
}
$stmt->free_result(); //why do i need this?
$stmt->close(); //why do i need this?
Im preguntando porque no veo ninguna degradación de rendimiento notable sin ellos. Son aquellos comandos por lo general sólo se utilizan para cuando almaceno el resultado usando:
$stmt->store_result();
De esta manera:
$mysqli=new mysqli("database", "db", "pass", "user");
$stmt = $mysqli->prepare("SELECT email FROM users WHERE id=? ");
$stmt->bind_param('i',$_SESSION['id']);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($email);
while($stmt->fetch()){
echo $email;
}
$stmt->free_result(); //why do i need this?
$stmt->close(); //why do i need this?
última instancia, la cuestión se reduce a cuando es el momento adecuado para usar freeresult() y close ()?
No, no le dice nada a la base de datos – zerkms
Así que puedo utilizar freeresult() al final de cualquier declaración que no necesito a storeresult() para? –
@Dan Kanze: siempre y cuando no experimente ningún problema, no lo haga, no pierda ciclos de CPU por nada – zerkms