这里是新语言,PHP 对我来说是一种新语言。我正在尝试开发一个网络应用程序。为了保证安全,我试图将我的数据库登录凭据保存在一个简单的 ini 文件(称为 db.ini)中。
1) 我的系统运行的是 Ubuntu 18.04。我已经安装了 LAMP
2) 当我在下面粘贴的 myqli_connect 脚本中有登录凭据时,该脚本通过 mysqli_connect 和 mysqli_query 更新数据库,工作正常。请注意,为了进行故障排除,我会在成功连接时回显一条消息:
$db = 'my_db';
$db_use = 'my_root_user';
$db_pass = 'my_password';
$db_host = 'localhost:3306';
$conn = mysqli_connect($db_host, $db_use, $db_pass, $db);
if(! $conn)
{die('Could not connect connect: ' . mysqli_connect_error()) ;
} else
{echo ("Success");
}
3) 出于安全原因,我创建了一个 db.ini 文件。虽然我打算稍后移动它,但我已将其存储在与我的 .php 脚本相同的目录中:(\var\www\html\my_site)。
这是 .ini 的读取方式
[database]
host = localhost:3306
username = my_root_user
password = my_password
dbname = my_database
3) 我试图通过以下方法解析这个文件。所有的 print_r 都失败了,更不用说打开数据库了,所以他们打不开。
parse_ini_file('db.ini') // failed
parse_ini_file('/var/www/html/my_site/db.ini'); // failed
4) 我已使用以下代码确认该文件存在于我的 php 中。
$filename = 'db.ini';
if (file_exists($filename)) {
echo "The file $filename exists";
} else {
echo "The file $filename does not exist";
}
5) 因此,导入似乎无法在我的设置 (Ubuntu LAMP) 上运行。
6) 在一个相关的问题上,我尝试将其作为“要求”,并将变量也保存为 db_config.php。即使文件存在,这也没有链接。
不用说,我已经束手无策了。有什么建议么?我感觉这是一个配置问题,脚本无法与 Apache 或我的 Linux 上的其他文件通信,但没有经验去哪里。
最佳答案
尝试使用这个 parse_ini_string .
代码
$filename = 'db.ini';
if (file_exists($filename)) {
$db = parse_ini_string(file_get_contents($filename));
var_dump($db);
} else {
echo "The file $filename does not exist";
}
关于PHP parse_ini_file 和 includes 不工作(Ubuntu 桌面 LAMP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50454383/