Вопрос

Я изучаю php pdo;мое окружение - это :NetBeans 6.5.1, XAMPP 1.7.0 и у меня есть этот код, который, похоже, подключается.

  • Если я изменяю dbname на несуществующее, это вызывает исключение "db not exists".
  • Если я меняю пользователя, это вызывает сообщение "вход в систему неверный")

но когда я вызываю $cn->query, это вызывает:

Необработанное исключение Win32 произошло в apache.exe

Что я делаю не так?

$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();
}
Это было полезно?

Решение

Это ошибка в XAMPP 1.7.0.Обновитесь до 1.7.1 или следовать эти инструкции чтобы исправить вашу установку 1.7.0.

Другие советы

Действителен ли $ cn?Проверьте возвращаемое значение.То, что вы описали до сих пор, не убеждает меня в том, что вы связаны.

Если вы еще этого не сделали, я бы позаботился о том, чтобы ваше окружение работало правильно.

  1. Убедитесь, что пользователь работает с самим MySQL (используя что-то вроде mysqlquery).
  2. Убедитесь, что php может подключаться к MySQL.Я устанавливаю phpmyadmin на все новые настройки (даже если я не оставляю его на месте), чтобы убедиться, что у меня хорошее рабочее соединение.
  3. Иметь PDO через исключения при ошибках (см. http://us2.php.net/manual/en/pdo.error-handling.php), чтобы сразу увидеть, где возникают ошибки.

Я предполагаю, что вы никогда не подключаетесь к MySQL, что объясняет невозможность изменения базы данных.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top