无法使用 pdo 连接到 mysql
Posted
技术标签:
【中文标题】无法使用 pdo 连接到 mysql【英文标题】:trouble connecting to mysql with pdo 【发布时间】:2022-01-18 06:02:20 【问题描述】:我正在尝试使用 pdo 连接到 mysql 数据库,但不断收到此错误:
警告:在第 2 行的 C:\xampp\htdocs\first\index.php 中使用未定义的常量用户名 - 假定为“用户名”(这将在 PHP 的未来版本中引发错误)
警告:在第 2 行的 C:\xampp\htdocs\first\index.php 中使用未定义的常量密码 - 假定为“密码”(这将在 PHP 的未来版本中引发错误)
致命错误:未捕获的 PDOException: SQLSTATE[HY000] [1045] C:\xampp\htdocs\first\index.php:2 中的用户 'username'@'localhost' 访问被拒绝(使用密码:YES)堆栈跟踪: #0 C:\xampp\htdocs\first\index.php(2): PDO->__construct('mysql:host=loca...', 'username', 'password') #1 main throw in C:\xampp\htdocs\first\index.php 在第 2 行
这是我的代码:
<?php
$pdo = new PDO('mysql:host=localhost;port=3306;dbname=dbname', username, password);
?>
【问题讨论】:
您没有定义常量用户名和密码,或者您打算输入 $username 和 $password。 (或者您忘记了引号:“用户名”,而实际上您要使用的用户名......) 并始终开始阅读第一条错误或警告消息。一旦解决了 10 次中的 9 次,其他错误也会消失 ***.com/questions/31154124/… 似乎有很好的答案 ***.com/questions/31154124/…的可能重复 【参考方案1】:这是因为用户名和密码不是变量。他们缺少 $
<?php
$username = 'myUsername';
$password = 'myPassword';
$pdo = new PDO('mysql:host=localhost;port=3306;dbname=dbname', $username, $password);
?>
【讨论】:
我尝试: 现在我收到此错误:致命错误:未捕获的 PDOException:SQLSTATE[HY000] [1045] C:\xampp\htdocs\first\index 中的用户 'myUsername'@'localhost'(使用密码:YES)的访问被拒绝。 php:8 堆栈跟踪:#0 C:\xampp\htdocs\first\index.php(8): PDO->__construct('mysql:host=loca...', 'myUsername', 'myPassword') #1 main 在第 8 行的 C:\xampp\htdocs\first\index.php 中抛出 是的,那是因为您没有将myUsername
替换为您正在使用的用户名。您需要用正确的凭据替换 myUsername
和 myPassword
我不知道您所说的正确凭据是什么意思,这是我的计算机用户名和密码吗?
您需要添加为您为尝试访问的 mysql 数据库创建的用户创建的凭据。以上是关于无法使用 pdo 连接到 mysql的主要内容,如果未能解决你的问题,请参考以下文章
php 无法连接到 sql server 2008(使用 pdo dblib)
Mysql - 无法连接未知数据库'databasename'错误