Php 连接到MySQL时发生PDO错误

Php 连接到MySQL时发生PDO错误,php,mysql,Php,Mysql,我正在尝试连接到本地主机上存储的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.

我正在尝试连接到本地主机上存储的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();
}
此代码返回以下错误:

致命错误:未捕获的异常'PDOException',消息'SQLSTATE[HY000][2003]无法连接到'127.0.0.1'(10061)'上的MySQL服务器,在H:\path\filename.php:12堆栈跟踪:#0 H:\path\filename.php(12):PDO->u构造('MySQL:host=loc',root',mypass')#1{main}抛出在H:\path\filename.php(12)的第12行

有没有关于如何纠正这一点的建议


谢谢

我肯定你从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']);
或者再次查看教程:


如果没有,请尝试使用下面的代码连接,因为它将捕获异常并回显问题所在

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

上述连接方式更安全,因为如果出现问题,它不会向用户显示整个文件和目录结构

我肯定你从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']);
或者再次查看教程:


如果没有,请尝试使用下面的代码连接,因为它将捕获异常并回显问题所在

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


上述连接方式更安全,因为如果出现问题,它不会向用户显示整个文件和目录结构

确保在
php.ini
文件中启用/取消注释了
extension=php\u pdo\u mysql.dll
否则pdo将不支持mysql。

确保在
php.ini
文件中启用/取消注释了
extension=php\u pdo\u mysql.dll
否则pdo将不支持mysql。

您无法连接到mysql服务器。您是否确保它正在运行、您连接到了正确的主机、您的凭据正确等?它正在工作,我可以连接mysql_connect(),但我更愿意使用PDO。我只是语法有点问题。你无法连接到MySQL服务器。您是否确保它正在运行、您连接到了正确的主机、您的凭据正确等?它正在工作,我可以连接mysql_connect(),但我更愿意使用PDO。我只是在语法方面有困难。谢谢,是的,我确实从参考教程中获得了这段代码。当我使用“try”代码运行代码时,我得到以下结果:错误:SQLSTATE[HY000][2003]无法连接到“localhost”(10061)@AME上的MySQL服务器,这可能是由于您的localhost出现了问题。能否将
localhost
更改为
127.0.0.1
@AME localhost与127.0.0.1相同,您还说使用mysql可以正常工作?DSN可能出了问题。请参阅我的帖子以了解可能的原因,并链接到PHP文档以创建DSN。当我用IP替换localhost时,我收到相同的错误-错误:SQLSTATE[HY000][2003]无法连接到'127.0.0.1'(10061)@AME上的MySQL服务器。您最近更改了密码、数据库名或服务器吗?谢谢,是的,我确实从参考教程中得到了这段代码。当我使用“try”代码运行代码时,我得到以下结果:错误:SQLSTATE[HY000][2003]无法连接到“localhost”(10061)@AME上的MySQL服务器,这可能是由于您的localhost出现了问题。能否将
localhost
更改为
127.0.0.1
@AME localhost与127.0.0.1相同,您还说使用mysql可以正常工作?DSN可能出了问题。有关可能的原因,请参阅我的帖子,并链接到PHP文档以创建DSN。当我用IP替换localhost时,我得到了相同的错误-错误:SQLSTATE[HY000][2003]无法连接到'127.0.0.1'(10061)@AME上的MySQL服务器。您最近更改了密码、数据库名或服务器吗?谢谢。密码不包含这些字符中的任何一个。@AME请确保在
php.ini
文件中启用/取消了
extension=php_pdo_mysql.dll的注释,否则pdo将不支持mysql,然后重新启动服务器。extension=php_pdo_mysql.dllenabled@AME是在
extension=php_pdo.dll
之后吗?它必须在这一行之后;extension=php_pdo_mssql.dllthanks。密码不包含这些字符中的任何一个。@AME请确保在
php.ini
文件中启用/取消了
extension=php_pdo_mysql.dll的注释,否则pdo将不支持mysql,然后重新启动服务器。extension=php_pdo_mysql.dllenabled@AME是在
extension=php_pdo.dll
之后吗?它必须在这一行之后;扩展名=php_pdo_mssql.dll