1

mySqlからPDOに切り替えていますが、データベースへの正しい接続を作成するのに問題があります。ユーザー名とパスワードはmySqlで機能しますが、以下に示すコードを使用して接続しようとすると、このエラーメッセージが表示されます。

ERROR: SQLSTATE[28000] [1045] Access denied for user 'sean'@'localhost' (using password: NO)

私は間違いなく正しいパスワードを使用しており、Seanという名前のユーザーがいないため、なぜパスワード「NO」と表示されているのかよくわかりません。ユーザー名またはパスワードに使用している構文に何か問題がありますか?

これは私が使用しているコードです(「MyPassword」を実際のパスワードに交換しています)

<?php
session_start(); 
try {
$conn = new PDO('mysql:host=localhost;dbname=MyDatabase', $clickfi4_root, $MyPassword);
  $stmt = $conn->prepare('SELECT * FROM customer_info WHERE id = :id');
  $stmt->execute(array('id' => $id));
  $result = $stmt->fetchAll();
  if ( count($result) ) {
    foreach($result as $row) {
      print_r($row);
    }
  } else {
    echo "No rows returned.";
  }
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}      
?>
4

4 に答える 4

1

エラーメッセージは言った:

(using password: NO)

これは、ログイン試行でパスワードが使用されなかったことを意味します。

$MyPassword の値を確認します。

また、ルート以外のアカウントを使用してみてください。とにかく、それはベストプラクティスではありません。

于 2012-12-11T07:14:59.127 に答える
0

username@localhostの代わりにusername@127.0.0.1がトリックを実行することがあります。

于 2012-12-11T07:11:37.177 に答える
0

私が使用していたnet tuts チュートリアルの構文が少し間違っていたことが判明しました。ユーザー名とパスワードの前に「$」を削除すると機能します:-)

$conn = new PDO('mysql:host=localhost;dbname=MyDatabase', clickfi4_root, MyPassword);
于 2012-12-11T17:43:54.773 に答える
0

将来の Google 社員のために、私はたった今同じ問題を抱えていましたが、パスワードが正しいと確信していました。はい、パスワードは確かに正しかったのですが、問題はパスワードを生成する方法と、パスワードを構成ファイルに保持する方法です。

私のようなランダム パスワード ジェネレーターを使用する場合は$、パスワードにドル記号が含まれていないことを確認してください。

パスワードがある場合は$、次のように構成ファイルにパスワードを保持していることを確認してください

$pass = 'randomchars$morerandom';

しかし、このようではありません

$pass = "randomchars$morerandom";
于 2015-02-01T18:40:20.453 に答える