PDO连接到MySQL时出错

时间:2012-12-25 02:37:39

标签: php mysql

我正在尝试连接到存储在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

有关如何纠正此问题的任何建议?

THX!

2 个答案:

答案 0 :(得分: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();
}

上面的连接方式更安全,因为它出错了它不会向用户显示整个文件和目录结构。

答案 1 :(得分:2)

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