Pergunta

Estou aprendendo php DOP; meu ambiente é:. NetBeans 6.5.1, XAMPP 1.7.0 e eu tenho esse código, que parece ligar

  • Se eu mudar dbname para um inexistente, levanta exceção "db não existe"
  • Se o usuário I mudança, ele levanta "login incorreto")

mas quando eu chamar $ CN-> consulta, ele levanta:

Uma Exceção não tratada Win32 ocorreu em apache.exe

O que estou fazendo de errado?

$hostname = 'localhost';
$username = 'crb';
$password = 'letmein';
try {
    $cn = new PDO("mysql:host=$hostname;dbname=bitacora", $username, $password);
    echo 'Connected to database<br />';
    $sql = "SELECT * FROM usuario WHERE login = '".$login."' AND clave = '".$clave."'";
    // Error here
    foreach ($cn->query($sql) as $row) {
        print $row['login'] .' - '. $row['clave'] . '<br />';
    }
} catch (PDOException $e) {
    echo $e->getMessage();
} catch (Exception $e) {
    echo $e->getMessage();
}
Foi útil?

Solução

Este é um bug no XAMPP 1.7.0. Upgrade para 1.7.1 ou follow estas instruções para corrigir sua instalação 1.7.0.

Outras dicas

É de R $ cn válido? Verifique o valor de retorno. O que você descreveu até agora não me convencer de que você está conectado.

Se você não tiver, eu ia fazer certo se o seu ambiente estava funcionando.

  1. Certifique-se das obras do usuário com a própria MySQL (usando algo como mysqlquery).
  2. Certifique-se de php pode se conectar a MySQL. Eu instalar phpmyadmin em todas as novas configurações (mesmo se eu não deixá-lo no lugar) para se certificar de que eu tenho uma boa conexão funcionando.
  3. Tem DOP através de exceções em erros (ver http: // us2 .php.net / manual / en / pdo.error-handling.php ) para ver onde os erros estão ocorrendo imediatamente.

Meu palpite é que você não está sempre se conectar a MySQL, o que explicaria a incapacidade de mudar o banco de dados.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top