php - getcolumnmeta - Conexión de cierre PDO
pdo fetchall (3)
Creé una clase derivada para tener una instrucción más autodocumentada en lugar de "$ conn = null;".
class CMyPDO extends PDO {
public function __construct($dsn, $username = null, $password = null, array $options = null) {
parent::__construct($dsn, $username, $password, $options);
}
static function getNewConnection() {
$conn=null;
try {
$conn = new CMyPDO("mysql:host=$host;dbname=$dbname",$user,$pass);
}
catch (PDOException $exc) {
echo $exc->getMessage();
}
return $conn;
}
static function closeConnection(&$conn) {
$conn=null;
}
}
Entonces puedo llamar mi código entre:
$conn=CMyPDO::getNewConnection();
// my code
CMyPDO::closeConnection($conn);
Sólo una pregunta bastante simple con respecto a PDO en comparación con MySQLi.
Con MySQLi, para cerrar la conexión, puede hacer lo siguiente:
$this->connection->close();
Sin embargo, con PDO indica que abre la conexión usando:
$this->connection = new PDO();
pero para cerrar la conexión, lo establece en null
.
$this->connection = null;
¿Es correcto y esto realmente liberará la conexión PDO? (Sé que lo hace como está establecido en null
.) Quiero decir con MySQLi tienes que llamar a una función ( close
) para cerrar la conexión. ¿Es PDO tan fácil como = null
desconectar? ¿O hay una función para cerrar la conexión?
Según la documentación, estás en lo correcto ( http://php.net/manual/en/pdo.connections.php ):
La conexión permanece activa durante el tiempo de vida de ese objeto PDO . Para cerrar la conexión, debe destruir el objeto, asegurándose de que se eliminen todas las referencias restantes: haga esto asignando NULL a la variable que contiene el objeto. Si no hace esto explícitamente, PHP cerrará automáticamente la conexión cuando finalice su secuencia de comandos .
Tenga en cuenta que si inicializa el objeto PDO como una conexión persistente, no cerrará automáticamente la conexión.
$conn=new PDO("mysql:host=$host;dbname=$dbname",$user,$pass);
// If this is your connection then you have to assign null
// to your connection variable as follows:
$conn=null;
// By this way you can close connection in PDO.