页面加载报错:parse_ini_file文件不存在及PDO数据库连接拒绝
搞定你的PHP数据库连接错误
咱们先拆解你遇到的两个连锁问题,其实根源都是配置文件相关的问题,一步步来解决:
1. 先解决配置文件找不到的问题
你看到的第一个报错:
Warning: parse_ini_file(C:/wamp64/www/../private/sampleapp2.ini): failed to open stream: No such file or directory in C:\wamp64\www\sampleapp2\dao\ConnectionManager.php on line 6
这个路径C:/wamp64/www/../private/实际指向的是C:/wamp64/private/,你得先确认这个目录里有没有sampleapp2.ini文件:
- 如果文件压根不存在,赶紧创建一个,把你的数据库信息填进去:
db_host = localhost db_name = 你的数据库名称 db_user = 你的MySQL用户名 db_pass = 你的MySQL密码
- 如果文件存在但路径不对,直接把
ConnectionManager.php第6行的路径改成绝对路径,比如C:/wamp64/private/sampleapp2.ini,避开相对路径的坑。
2. 再修复数据库连接被拒绝的问题
第二个报错:
Fatal error: Uncaught PDOException: SQLSTATE[HY000] [1045] Access denied for user ''@'localhost' (using password: NO) in C:\wamp64\www\sampleapp2\dao\ConnectionManager.php:8
这明显是程序没读到数据库的用户名和密码,所以用空用户去连接被MySQL拒绝了:
- 先确认
sampleapp2.ini里的db_user和db_pass填对了,别打错字,尤其是密码里的特殊字符。 - 再检查
ConnectionManager.php里的PDO连接代码,是不是正确读取了配置文件的参数,比如应该是这样:
// 先正确读取配置文件 $config = parse_ini_file('刚才确认的正确路径/sampleapp2.ini'); // 用配置参数创建数据库连接 $dsn = "mysql:host={$config['db_host']};dbname={$config['db_name']}"; $pdo = new PDO($dsn, $config['db_user'], $config['db_pass']);
- 最后可以手动测试下你的MySQL账号能不能登录:打开WAMP的MySQL命令行,输入
mysql -u 你的用户名 -p,输入密码后能登录的话,再试试访问你的数据库USE 你的数据库名称;,如果没问题,那就是代码里的配置读取环节出了问题。
额外小检查
- 确保WAMP的MySQL服务是启动状态,看WAMP图标上的MySQL标识是绿色的就行。
- 检查
sampleapp2.ini的权限,Windows下只要不是只读属性,PHP一般都能正常读取。
内容的提问来源于stack exchange,提问作者Rachel
相关产品推荐
相关产品推荐

