1

I am trying to connect to a MySQL database stored on localhost.

Code:

$config['db'] = array( 
    'host' => 'localhost',
    'username' => 'root',
    'password' => 'mypass',
    'dbname' => "dbname"
);

echo $config['db']['host'];

try {
    $conn = new PDO('mysql:host=127.0.0.1;dbname=sfrtv', 'root', 'usbw', array(PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}

This code returns the following error:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2003] Can't connect to MySQL server on '127.0.0.1' (10061)' in H:\path\filename.php:12 Stack trace: #0 H:\path\filename.php(12): PDO->__construct('mysql:host=loc....', 'root', 'mypass') #1 {main} thrown in H:\path\filename.php(12) on line 12

Any suggestion on how to correct this?

Thx!

4

2 に答える 2

2

ファイルで有効化/コメント解除されていることを確認してください。extension=php_pdo_mysql.dll有効化/コメント解除されてphp.iniいない場合、PDOはMySQLをサポートしません。

于 2012-12-25T02:52:06.040 に答える
2

コードは、PHP アカデミーの Alex から入手したと思います。あなたのmysqlの詳細が同じであることを確認してみてください。これを試してください。引用符と空白を変更しました。

   $config['db'] = array( 
    'host' => 'localhost',
    'username' => 'root',
    'password' => 'mypass',
    'dbname' => 'dbname'
    );

        echo $config['db']['host']; 

        $dbh = new PDO('mysql:host='. $config['db']['host'] .';dbname='. $config['db']['dbname'], $config['db']['username'], $config['db']['password']);

または、チュートリアルをもう一度確認してください: http://www.youtube.com/watch?v=XQjKkNiByCk


そうでない場合は、以下のコードで接続するこの方法を試してください。例外がキャッチされ、問題が何であるかがエコーされます。

try {
    $conn = new PDO('mysql:host=localhost;dbname=mydb', 'root', 'mypass', array(PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}

上記の接続方法は、何か問題が発生した場合、ファイルとディレクトリ構造全体がユーザーに表示されないため、はるかに安全です。

于 2012-12-25T02:49:17.037 に答える