php - 我的 PDO 代码是否有错误或需要在 MySQL 中修复某些内容?

标签 php mysql database

<分区>

我正在为 PHP Practitioner 做 Laracasts,但无法使用 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 数据库表中提取信息。但是,它继续抛出异常并且只给我死命令提示符。

我还确认了 MySQL 服务器正在通过 MySQL Workbench 运行。

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

最佳答案

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

就是说,您的连接字符串 (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 身份连接。设置不同的用户帐户。
  • 您不需要 ; 最后的

关于php - 我的 PDO 代码是否有错误或需要在 MySQL 中修复某些内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56716761/

相关文章:

java - 从 Php 执行 Java 应用程序

mysql - 我的 SQL 查询正在返回结果,但它们重复了约 50 次。我不明白为什么

php - PDO SQL-state "00000"但仍然出错?

SQL 表数十亿个条目 - 寻找性能建议

php - 两个表的下拉列表,php mysql

php - 访问 $OPENSHIFT_DATA_DIR 上的上传文件

php - 从mysql数据库php中删除数据

php - Symfony2 Doctrine 查询 - 日期时间添加

python - SQLAlchemy:AttributeError:无法在列 '_sa_instance_state' 的行中找到列

php - 不使用表单设置 POST 变量