Como verificar se conectou no banco de Dados? – php mysql pdo

Pergunta:


como verifico se meu código PHP + PDO conectou com sucesso ao banco de dados MySQL?

Com o código assim ele funciona:

<?php
/* Connect to a MySQL database using driver invocation */
$dsn = 'mysql:host=localhost;port=3306;dbname=bancoservico';
$user = 'root';
$password = '';
$opcoes = array( PDO::ATTR_PERSISTENT => true,
                 PDO::ATTR_CASE       => PDO::CASE_UPPER    
    );

try {
    $dbh = new PDO($dsn, $user, $password, $opcoes);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

O erro se dá quando o código está assim:

<?php

class AcessoDados {

public function __construct(){
   $dsn = 'mysql:host=localhost;port=3306;dbname=bancoservico';
   $user = 'root';
   $password = '';
   $opcoes = array( PDO::ATTR_PERSISTENT => true,
                 PDO::ATTR_CASE       => PDO::CASE_UPPER    
        );

try {
    $dbh = new PDO($dsn, $user, $password, $opcoes);
    } catch (PDOException $e) {
        echo 'Connection failed: ' . $e->getMessage();
    }       
  }
}

Link para teste:
http://sandbox.onlinephpfunctions.com/code/4382d8813f699766f41658ce9f3101867eb8fd36

Autor da pergunta J.C. Galhardi

Comunidade

Graças a ajuda do camarada Tiago NET eu montei este script com técnicas de segurança e totalmente funcional para você, venho aperfeiçoando a forma como me conecto ao meu banco de dados de tempo em tempo e hoje acho interessante utilizar desta forma e agora com a atualização da ajuda mencionada.

<?php class query_sql {
    protected static $conect;
    private function __construct() {

        $mysql_host = "";
        $mysql_base = "";
        $mysql_user = "";
        $mysql_pass = "";

        try { self::$conect = new PDO("mysql:host=" . $mysql_host . "; dbname=" . $mysql_base, $mysql_user, $mysql_pass);
            self::$conect -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            self::$conect -> exec("set names utf8");
            $conect = null; }

        catch(PDOException $error) {
            echo $error -> getMessage(); } }

    public static function conect_sql() {
        if (!self::$conect) {
            new query_sql; }
        return self::$conect; } }

    $bind_sql = query_sql::conect_sql(); ?>

<?php $list_information = $bind_sql -> prepare("SELECT user_email, user_name FROM usuarios WHERE user_email = :user_email LIMIT 1");
    $list_information -> bindValue(":user_email", "@");
    $list_information -> execute();
    $list_information = $list_information -> fetchAll(); ?>

<?php foreach($list_information as $list_information) {
    echo $list_information["user_email"] . " | " . $list_information["user_name"]; } ?>

<?php $compare_information = $bind_sql -> prepare("SELECT user_email, user_pass FROM usuarios WHERE user_email = :user_email AND user_pass = :user_pass LIMIT 1");
    $statement_array = array(":user_email" => "@", ":user_pass" => "pass");
    foreach($statement_array as $array_key => $array_value) {
        $compare_information -> bindValue($array_key, $array_value); }
    $compare_information -> execute();
    $compare_information = $compare_information -> fetchAll(); ?>

<?php foreach($compare_information as $compare_information) {
    echo $compare_information["user_email"]; } ?>

<?php

class Acesso{
    protected static $db; 
    private function __construct(){
    $db_host = "<nome do host>";
    $db_database = "<nome do banco de dados>";
    $db_usuario = "<nome do usuario>";
    $db_senha = "<senha do usuario>";
    $db_driver = "mysql";

        try{
            self::$db = new PDO("$db_driver:host=$db_host; dbname=$db_database", $db_usuario, $db_senha);
            # Permite ao PDO lançar exceções durante erros.
            self::$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            # Dados armazenados com codificação UTF-8 caso deseje assim
            self::$db->exec('SET NAMES utf8');
        }
        catch (PDOException $e)
        {            
             # Parar carregamento da página
             die("Connection Error: " . $e->getMessage());
        }
     }

        public static function conexao(){
            if (!self::$db)
            {
                new Acesso;
            }
            return self::$db;
        }
    }
}

Salve como pdo.class.php ou qualquer outro nome

Para usar:

  <?php

  include("pdo.class.php");      

  $pdo = Acesso::conexao();
  $stmt = $pdo->prepare('SELECT * FROM tabela'); -> tabela = nome da tabela

Amigo, talvez você queira algo como:

<?php

//hide/show errors
ini_set('display_errors', 1);

class AcessoDados {
public $conn;

public function _construct(){
    $dsn = 'mysql:host=localhost;port=3306;dbname=bancoservico';
    $usuario = 'root';
    $senha = '';
    $opcoes = array( PDO::ATTR_PERSISTENT => true,
                     PDO::ATTR_CASE       => PDO::CASE_UPPER    
        );

    try{
        $this -> conn = new PDO($dsn, $usuario, $senha, $opcoes);
    } catch (PDOException $e){
        die('Não foi possível conectar: ' . mysql_error());
    }        
  }
}

Lembrando que você pode habilitar o código:

//hide/show errors
ini_set('display_errors', 1);

onde o 1 é para você Mostrar os erros que geram caso ele não se conecte! Para esconder os erros mude para 0.

Fonte

Related Posts:

Qual a diferença entre AppCompatActivity e Activity? – android android-activity
Pergunta: Qual a diferença da AppCompatActivity para Activity ? A partir de qual versão a AppCompatActivity foi adicionada ao Android? Autor da pergunta Luhhh A diferença reside ...
Como abreviar palavras em PHP? – php string
Pergunta: Possuo informações comuns como nome de pessoas e endereços, e preciso que elas contenham no máximo 30 caracteres sem cortar palavras. Exemplo: 'Avenida Natalino João Brescansin' ...
Qual é a finalidade de um parêntese vazio numa declaração Lambda? – c# expressões-lambda característica-linguagem
Pergunta: Criei um exemplo de uma declaração Lambda sem argumentos, entretanto, estou com duvidas referente a omissão do parêntese vazio () na declaração. Veja o exemplo: class ...
Boas práticas para URI em API RESTful – api rest restful
Pergunta: Estou com dúvida em relação às URIs de alguns recursos da api que estou desenvolvendo. Tenho os recursos projetos e atividades com relação 1-N, ...
Dúvidas sobre a integração do MySQL com Java – java mysql netbeans
Pergunta: Estou criando um sistema no NetBeans, utilizando a linguagem Java e o banco de dados MySQL. Escrevi o seguinte código para realizar a conexão ...
Qual é a finalidade da pasta Model do framework Inphinit? – php inphinit
Pergunta: No Inphinit micro-framework existe a pasta Model que fica dentro da pasta application, e nela é onde ficam as classes, mas eu estou muito ...
Uso do ‘@’ em variáveis – javascript typescript coffeescript
Pergunta: Vejo em algumas linguagens que compilam para javascript, como TypeScript e CoffeeScript, o uso do @ em variáveis, como também, casos em que o ...
Qual tamanho máximo um arquivo JSON pode ter? – json arquivo
Pergunta: Vou dar um exemplo para conseguir explicar minha duvida: Preciso recuperar informação de imagens vindas de uma API, esse banco de imagens me retorna JSON's ...
O que é Teste de Regressão? – terminologia engenharia-de-software testes
Pergunta: Na matéria de Teste de Software o professor abordou um termo chamado Teste de Regressão, isto dentro da disciplina de teste de software. Sendo ...
O que é um construtor da linguagem? – php característica-linguagem
Pergunta: Em PHP, já li e ouvi várias vezes a respeito dos Construtores da Linguagem. Os casos que sempre ouvi falar deles foi em casos ...
Função intrínseca para converter numérico para string – cobol
Pergunta: Estou a tentar saber se existe alguma função intrínseca do COBOL para converter um data numérico para string sem precisar usar a cláusula REDEFINES: ( ...
Porque usar implements? – java android
Pergunta: Qual a diferença entre usar btn.setOnClickListener(new OnClickListener() { e public class MainActivity extends Activity implements OnClickListener{ Estive fazendo um curso de Android e meu professor falou que ...
O que é XHTML e quando deve ser usado? – html xml xhtml
Pergunta: O que eu sei é que o XHTML precisa ser XML válido. Isso implica, por exemplo, que todas as tags precisam ser fechadas. Por ...
Uma placa aceleradora de vídeo pode melhorar o desempenho não-gráfico? [fechada] – desempenho
Pergunta: Para desenvolver em Ruby on Rails, eu utilizo aqui uma máquina virtual do VirtualBox com Ubuntu Server 14.04 sem interface gráfica instalada. Recentemente descobri uma ...
Concat() VS Union() – c# .net
Pergunta: Qual a diferença entre Concat() e Union() ? Quando usar Concat() e quando usar Union() ? Somente pode ser usado em list ? ...

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *