我的PDO代码是否有错误,还是需要在MySQL中修复?

时间:2019-06-22 15:31:43

标签: php mysql database

我正在做PHP实践者的Laracast,并且无法使用PDO PHP函数连接到本地SQL数据库。

我已经查看了MySQL Workbench中数据库的所有设置。代码中的数据库名称正确。端口正确。本地主机IP正确。

try {
    $pdo = new PDO('mysql:host 127.0.0.1:3306;dbname=Test', 'root', '');
} catch (PDOException $e) {
    die('Could Not Connect');
};

我希望它能够正常工作,并且能够从我的SQL数据库表中提取信息。但是,它继续引发异常,只给我我的die命令提示符。

我还确认MySQL服务器正在通过MySQL工作台运行。

要使此命令正确连接,需要更改什么?

1 个答案:

答案 0 :(得分:3)

对于初学者,您应该检查实际错误。您的“无法连接”消息无法帮助您或我们诊断问题,但实际引发的异常将可以。理想情况下,您将拥有更精确的错误处理代码。不过,至少可以在var_dump($e)块内catch

也就是说,您的连接字符串(DSN)语法错误;您缺少=,并且错误地指定了端口。

$pdo = new PDO('mysql:host=127.0.0.1;port=3306;dbname=Test', 'root', '');
//                        ^         ^ you need ;port=, not just a colon
//                        |
//                        should be =, not a space

其他一些注意事项:

  • 根据您的示例尚不清楚,您的root帐户是否有密码。如果是这样,太好了,请不要在此处发布。如果您的帐户没有 密码,请立即设置一个密码。
  • 无论如何,您确实不应该以root用户身份进行连接。设置其他用户帐户。
  • 在最后一个;之后,您不需要}