Pregunta

Estoy aprendiendo php pdo; Mi entorno es: NetBeans 6.5.1, XAMPP 1.7.0 y tengo este código, que parece que se conecta.

  • Si cambio dbname a uno que no existe, genera una excepción " db no existe "
  • Si cambio de usuario, aparece " inicio de sesión incorrecto ")

pero cuando llamo a la consulta $ cn- >, surge:

  

Se produjo una excepción de Win32 no controlada en apache.exe

¿Qué estoy haciendo mal?

$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();
}
¿Fue útil?

Solución

Este es un error en XAMPP 1.7.0. Actualice a 1.7.1 o siga estas instrucciones para arreglar su instalación 1.7.0.

Otros consejos

¿Es válido $ cn? Compruebe el valor de retorno. Lo que has descrito hasta ahora no me convence de que estés conectado.

Si aún no lo has hecho, me aseguraré de que tu entorno funcione correctamente.

  1. Asegúrese de que el usuario trabaje con MySQL (usando algo como mysqlquery).
  2. Asegúrese de que php pueda conectarse a MySQL. Instalo phpmyadmin en todas las configuraciones nuevas (incluso si no lo dejo en su lugar) para asegurarme de que tengo una buena conexión de trabajo.
  3. Tener PDO a través de excepciones en errores (ver http: // us2 .php.net / manual / es / pdo.error-handling.php ) para ver dónde están ocurriendo los errores de inmediato.

Mi conjetura es que nunca te estás conectando a MySQL, lo que explicaría la incapacidad para cambiar la base de datos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top