Я прочитал много других вопросов, касающихся этой ошибки, но она не решает мою, поэтому я и задал этот вопрос, несмотря на очевидную мысль, что многие спрашивали об этом раньше меня.
Это мой connect.php
<?php
$user = 'root';
$pass = '';
try{
$dbh = new PDO('mysql:host=localhost;dbname=Login', $user, $pass);
foreach($dbh->query('SELECT * from FOO') as $row){
print_r($row);
}
$dbh = null;
} catch (PDOException $e){
print "ERROR!:" . $e->getMessage() . "<br/>";
die();
}
Но у меня возникли проблемы, я уверен, что $ user и $ pass верны, но я все еще продолжаю получать это сообщение, я новичок в PDO — может ли это иметь какое-либо отношение к этому?
Когда я загружаю это на свой локальный хост, я получаю сообщение об ошибке:
ОШИБКА!: SQLSTATE [HY000] [1045] Доступ запрещен для пользователя
‘root’ @ ‘localhost’ (используя пароль: НЕТ)
Мне кажется, что это сообщение об ошибке говорит мне, что $pass = 'NO'
что это не так или что $ pass не так? Я пытался изменить $pass = 'NO';
и получил следующую ошибку:
ОШИБКА!: SQLSTATE [HY000] [1045] Доступ запрещен для пользователя
‘root’ @ ‘localhost’ (используя пароль: ДА)
Тогда — играя глупо здесь я меняюсь $pass = 'YES'
;
достал мне эту ошибку:
ОШИБКА!: SQLSTATE [HY000] [1045] Доступ запрещен для пользователя
‘root’ @ ‘localhost’ (используя пароль: ДА)
Если вы используете wamp
, это может быть возможным решением.
-> Изменить localhost
в 127.0.0.1
,
Так становится
<?php
$user = 'root';
$pass = '';
try{
$dbh = new PDO('mysql:host=127.0.0.1;dbname=Login', $user, $pass);
foreach($dbh->query('SELECT * from FOO') as $row){
print_r($row);
}
$dbh = null;
} catch (PDOException $e){
print "ERROR!:" . $e->getMessage() . "<br/>";
die();
}
Кроме того, просто поместите весь код подключения в другой файл, например, «dbconnector.php». Включите его на каждой странице, где вам нужно использовать вашу БД. Теперь вы можете получить доступ к соединению через $dbh
переменная.
Других решений пока нет …