Вопрос
Я изучаю 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?Проверьте возвращаемое значение.То, что вы описали до сих пор, не убеждает меня в том, что вы связаны.
Если вы еще этого не сделали, я бы позаботился о том, чтобы ваше окружение работало правильно.
- Убедитесь, что пользователь работает с самим MySQL (используя что-то вроде mysqlquery).
- Убедитесь, что php может подключаться к MySQL.Я устанавливаю phpmyadmin на все новые настройки (даже если я не оставляю его на месте), чтобы убедиться, что у меня хорошее рабочее соединение.
- Иметь PDO через исключения при ошибках (см. http://us2.php.net/manual/en/pdo.error-handling.php), чтобы сразу увидеть, где возникают ошибки.
Я предполагаю, что вы никогда не подключаетесь к MySQL, что объясняет невозможность изменения базы данных.
Не связан с StackOverflow