1
$link = mysql_connect('localhost', $username, $password);
if (!$link) 
{
     die('Could not connect: ' . mysql_error());
}

次のエラーが表示されます。

接続できませんでした: ユーザー 'www-data'@'localhost' のアクセスが拒否されました (パスワードを使用: NO)

なんで?

編集:

$username="root";
$password="root";
$database="test";

    function Save($name)
    {
        $link = mysql_connect('localhost', $username, $password);
        if (!$link) {
            die('Could not connect: ' . mysql_error());
        }
        @mysql_select_db($database) or die( "Unable to select database");
        $query = "INSERT INTO test (name)" .
                 "VALUES ('" . $name . "')";
        mysql_query($query);
        mysql_close();
    }
4

5 に答える 5

5

あなたは与え$username$password価値を与えましたか?このようなもの?

$username="root";
$password="";
于 2010-11-02T23:12:42.297 に答える
2

$password変数が空 ( (using password: NO)) の場合、パスワードなしでユーザーにログインしようとするとwww-data、サーバーの結果はアクセスが拒否されます。おそらく、このユーザーはパスワードを設定しています。

于 2010-11-02T23:13:44.053 に答える
1

あなたの編集から、問題はスコーピングの問題のようです。

$username$passwordおよび$database変数がその関数の外部で定義されている関数内で接続を確立しようとしています。

マニュアルのVariable Scopeセクションを読んで、@netcoder が質問のコメントで示唆しているように、エラー レポートを作成することをお勧めします。

于 2010-11-03T00:01:02.807 に答える
0

問題は、データベースに 2 回接続しようとしていることだと思います。コードのどこかで、すでにユーザー名を「www-data」としてデータベースに接続しようとしています。また、ユーザー名「root」でデータベースに接続しています。

また、ユーザー名「www-data」に指定したパスワードが間違っているため、エラー メッセージが表示されます。

于 2010-11-03T00:42:02.460 に答える
0
$username="root";
$password="root";
$database="test";

    function Save($name)
    {
        global $username;
        global $password;
        global $database;

        $link = mysql_connect('localhost', $username, $password);
        if (!$link) {
            die('Could not connect: ' . mysql_error());
        }
        @mysql_select_db($database) or die( "Unable to select database");
        $query = "INSERT INTO test (name)" .
                 "VALUES ('" . $name . "')";
        mysql_query($query);
        mysql_close();
    }
于 2010-11-03T05:20:02.573 に答える