php pdo ¿Что я делаю не так? - PullRequest
1 голос
/ 04 мая 2009

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

  • Если я изменяю имя dbname на несуществующее, возникает исключение "db not Существует"
  • Если я меняю пользователя, возникает «неверный логин»)

но когда я вызываю $ 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();
}

Ответы [ 3 ]

4 голосов
/ 04 мая 2009

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

0 голосов
/ 04 мая 2009

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

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

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

0 голосов
/ 04 мая 2009

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

...