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