-3

初めてPHPでPDOを使い始めました。

これが私のコードです:

$host="localhost";
$dbname="meme";
$user="root";
$pass="dream";

global $dbh;
try 
{ 
    //dbh : Database Handle  
    $dbh= new PDO("mysql:host=$host;dbname=$dbname,$user,$pass");  
}  
catch(PDOException $e)
{  
    echo $e->getMessage();  
}

このエラーが発生しました:

SQLSTATE[28000] [1045] Access denied for user 'www-data'@'localhost'
(using password: NO)

Google と StackOverflow の両方で多くの関連する投稿を取得できるため、よくあるエラーだと思いますが、この分野での知識が限られているため、修正できませんでした。どんな助けでも大歓迎です。

4

2 に答える 2

2

代わりにこれを使用してください:

$dbh= new PDO("mysql:host=$host;dbname=$dbname",$user,$pass);

DSN、ユーザー名、およびパスワードをまとめて引用しました。このように、これら 3 つのパラメーターは実際には 1 つのパラメーターにすぎません。したがって、PDO のコンストラクター POV から、ユーザー名とパスワードを渡していません。

于 2012-06-25T09:47:20.200 に答える
1

これは、MySQL の許可システムが原因である可能性があります。@localhostデフォルト@%(ネットワーク ソケットを使用) ではなく、(名前付きソケットを使用して)アクセス許可を明示的に付与する必要があります。

GRANT ALL ON database_name.* TO `www-data`@localhost IDENTIFIED BY 'password';

ところで、私はあなたがパスティにタイプミスをしたと思っていました。見積もりは直前まで,$user,$pass);

于 2012-06-25T09:47:12.417 に答える