1

我正在尝试连接到存储在 localhost 上的 MySQL 数据库。

代码:

$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();
}

此代码返回以下错误:

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

关于如何纠正这个问题的任何建议?

谢谢!

4

2 回答 2

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 回答
2

确保您已extension=php_pdo_mysql.dll在文件中启用/取消注释,php.ini否则 PDO 将不支持 MySQL。

于 2012-12-25T02:52:06.040 回答