php - MySQL不会从配置文件中读取密码

标签 php mysql html forms mysqli

我的网站上有一个 html 表单,我正在尝试处理数据,然后将其存储在我的服务器上的 mysql 数据库中。为了通过 php 安全地连接到 mysql,我按照建议 here ,将登录信息放置在主 webroot 之外的配置文件中。

这样编写的代码可以无缝执行:

<?php
$mysqli = mysqli_init( );
$mysqli->options(MYSQLI_READ_DEFAULT_FILE, "/this/is/the/filepath/to/my.cnf");
$mysqli->real_connect(NULL, NULL,'*********',NULL );  

if (mysqli_connect_errno()) {
    printf("Connect failed: ", mysqli_connect_error());
    exit();
}

$email = $mysqli->real_escape_string($_POST['email']);

$mysqli->query("INSERT INTO subscribetest (email) VALUES ('$email')");  
?>

但是当我取出密码时,如下所示:

<?php
$mysqli = mysqli_init( );
$mysqli->options(MYSQLI_READ_DEFAULT_FILE, "/this/is/the/filepath/to/my.cnf");
$mysqli->real_connect(NULL,NULL,NULL,NULL ); 

if (mysqli_connect_errno()) {
    printf("Connect failed: ", mysqli_connect_error());
    exit();
}

$email = $mysqli->real_escape_string($_POST['email']);

$mysqli->query("INSERT INTO subscribetest (email) VALUES ('$email')");
?>

代码崩溃,并收到错误消息:“警告:mysqli::real_connect()”。 'user'@'webaddress.net' 访问被拒绝(使用密码:NO)'

为什么我的 php 脚本可以读取配置文件中除了密码之外的所有内容?它能够从配置文件中读取用户名、主机和数据库;密码是唯一被遗漏的密码。我到处寻找,花了几个小时,但我还没有找到任何解决方案。有没有其他人有这个问题?我能做什么?

最佳答案

documentation表示将 real_connect() 中的密码参数设置为 NULL 意味着“用户不需要密码”。如果您在不带任何参数的情况下调用它(它们都是可选的),它会起作用吗?

关于php - MySQL不会从配置文件中读取密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12241333/

相关文章:

javascript - 单击链接时,函数值应存储在文本框中

PHP - error_reporting 不起作用

php - 识别组标签

php - Xampp 已安装并正在运行,无法使用 mysqli 连接

javascript - 只要不是 <a> 标签,就可以在单击某个区域时使用react

html - 搜索按钮阴影

php - 亚马逊 MWS - 更新产品数量

php - Div 定位不符合预期

MySQL 二进制日志时间戳非顺序?

java - 如何从 MYSQL 存储过程调用 Java 文件?