【问题标题】:trouble connecting to mysql with pdo无法使用 pdo 连接到 mysql
【发布时间】: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 次,其他错误也会消失
  • stackoverflow.com/questions/31154124/… 似乎有很好的答案

标签: php mysql pdo


【解决方案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 数据库创建的用户创建的凭据。
猜你喜欢
  • 1970-01-01
  • 2012-05-21
  • 2013-02-14
  • 1970-01-01
  • 2014-06-07
  • 1970-01-01
  • 2023-04-09
  • 2017-12-06
  • 2014-10-28
相关资源
最近更新 更多