PDO Exception - não funciona

23/04/2016

Boa tarde, podem me ajudar com um probleminha?
Não sei se o problema é PDO que não está ativado ou o algum erro no código.

A questão é, apresentar erro com o nome de banco que não existe.


<?php

define('SERVER', 'localhost');
define('DBNAME', 'db_pdo1');
define('USER', 'root');
define('PASSWORD', '');

try {
	$opcoes = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8');
	$conexao = new pdo("mysql:host".SERVER."; dbname=".DBNAME,USER, PASSWORD, $opcoes);
} catch (PDOException $erro) {
	var_dump($erro)
}
var_dump($conexao);

PHP

Gabriel Farias

Melhor resposta

27/04/2016

Funcionou quando coloquei senha do banco, quando não existe senha(sem senha), mas quando insiro um nome de banco diferente não apresenta erro.
Desculpem por não ter feito esse teste antes.

Gabriel Farias

Responder Citar

Outras Respostas

23/04/2016

Marcio Araujo

Sem o ";" confere aew.

var_dump($erro)
Responder Citar

23/04/2016

Gabriel Farias

Mesmo assim não está funcionando, já tinha visto, obrigado.
Responder Citar

23/04/2016

William (devwilliam)

Nesse post PDO ATIVO? que você postou as 13:19, o seu var_dump() já acusa que está tudo em ordem com a conexão:
object(PDO)#1 (0) { }


Qual seria o seu problema?
Responder Citar

23/04/2016

Gabriel Farias

Não apresenta o erro quando mudo o nome da base de dados.
Responder Citar

23/04/2016

William (devwilliam)

Seu ambiente deve estar configurado para não exibir os erros, leia isso:
Exibir erros no PHP durante o desenvolvimento
Responder Citar

23/04/2016

Gabriel Farias

Retiro o ;?


; display_errors
;   Default Value: On
;   Development Value: On
;   Production Value: Off




; error_reporting
;   Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
;   Development Value: E_ALL
;   Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT

Responder Citar

23/04/2016

William (devwilliam)

Nem precisa disso, no link que postei ensino a fazer isso no próprio script.
Responder Citar

23/04/2016

Gabriel Farias

William, fiz e continua sem apresentar erros:


<?php

/* Informa o nível dos erros que serão exibidos */
error_reporting(E_ALL);

/* Habilita a exibição de erros */
ini_set("display_errors", 1);

define('SERVER', 'localhost');
define('DBNAME', 'db_pdo1');
define('USER', 'root');
define('PASSWORD', '');

try {
	$opcoes = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8');
	$conexao = new pdo("mysql:host".SERVER."; dbname=".DBNAME,USER, PASSWORD, $opcoes);
} catch (PDOException $erro) {
	var_dump($erro);
}
var_dump($conexao);


Responder Citar

25/04/2016

Mauricio Padua

Não tem nada faltando dentro do Try? Confere.
Responder Citar

25/04/2016

Gabriel Farias

Não tem nada faltando dentro do Try? Confere.


Creio que não Mauricio, mas estou olhando ainda, não está me retornando nada, alias, retorna o que já postei, como se não tivesse erro.
Responder Citar

26/04/2016

Mauricio Padua

Veja isso, acho que deva estar faltando algo.
Responder Citar

27/04/2016

Marlon Gera

Continua o Erro? Se sim...
Tenta da seguinte forma...

<?php
 
define('SERVER', 'TESTE_OUTRO_HOST_QUE_NAO_EXISTE');
define('DBNAME', 'db_pdo1');
define('USER', 'root');
define('PASSWORD', '');
 
try {
    $opcoes = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8');
    $conexao = new pdo("mysql:host".SERVER."; dbname=".DBNAME,USER, PASSWORD, $opcoes);
} catch (PDOException $erro) {
    var_dump($erro)
}
var_dump($conexao);


E veja se vai dar erro.
Responder Citar

27/04/2016

Gabriel Farias

Continuar sem aparecer as mensagens de erro do PDO.
Responder Citar

27/04/2016

Marcio Araujo

Acabei esquecendo do post, está acompanhando as video aulas do William?
Responder Citar

27/04/2016

Gabriel Farias

Acabei esquecendo do post, está acompanhando as video aulas do William?


Sim, mas o problema é:

Ou no meu código ou em algo na minha maquina que não funciona. kkkk
Responder Citar