无法使用 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 替换为您正在使用的用户名。您需要用正确的凭据替换 myUsernamemyPassword 我不知道您所说的正确凭据是什么意思,这是我的计算机用户名和密码吗? 您需要添加为您为尝试访问的 mysql 数据库创建的用户创建的凭据。

以上是关于无法使用 pdo 连接到 mysql的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 PDO 插入 MySQL 数据库....没有错误

php 无法连接到 sql server 2008(使用 pdo dblib)

Mysql - 无法连接未知数据库'databasename'错误

Mysql - 无法连接未知数据库'databasename'错误

PDO连接到ODBC iseries无法正常工作

无法通过 PDO 连接到 AWS RDS