A conexão é estabelecida criando uma instância da classe base PDO. Independentemente de qual driver for usado, o nome da classe PDO será usado.
<?php$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);?>
Nota: Se houver algum erro de conexão, um objeto de exceção PDOException será lançado.
<?phptry { $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass); foreach($dbh->query('SELECT * from FOO') as $row) { print_r ($row); } $dbh = null;} catch (PDOException $e) { imprimir "Erro!: " $e->getMessage() . "<br/>"; morrer();}?>
Após conectar os dados com sucesso, uma instância da classe PDO é retornada ao script. Essa conexão permanece ativa durante o ciclo de vida do objeto PDO.
Para fechar a conexão, você precisa destruir o objeto para garantir que todas as referências restantes a ele sejam excluídas. Você pode atribuir um valor NULL à variável do objeto.
Se você não fizer isso, o PHP fechará automaticamente a conexão no final do script.
<?php$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass); // Use a conexão aqui // Agora a execução está completa, feche a conexão aqui $dbh = null); ;?>
Muitas aplicações web se beneficiam do uso de conexões persistentes com serviços de banco de dados.
As conexões persistentes não são fechadas após o término do script e são armazenadas em cache e reutilizadas quando outra solicitação de conexão de script usando as mesmas credenciais é feita.
O cache de conexão persistente pode tornar os aplicativos da Web mais rápidos, evitando a sobrecarga de estabelecer uma nova conexão sempre que um script precisar se comunicar com o banco de dados.
<?php$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass, array( PDO::ATTR_PERSISTENT => true));?>
Nota: Se desejar usar conexões persistentes, você deve definir PDO::ATTR_PERSISTENT no array de opções do driver passado para o construtor PDO. Se este atributo for definido com PDO::setAttribute() após a inicialização do objeto, o driver não utilizará conexões persistentes.