我正在使用存储在主机上的php文件连接到存储在同一主机上的数据库,这很好。
我正在使用下面的连接到数据库(示例连接详细信息)
<?php
$db = new PDO('mysql:host=localhost;dbname=myDB', 'myusername', 'mypassword');
我的问题是;既然我已经在我的php文件中指定了连接到服务器的密码(以及其他详细信息),那么有直接链接到我的php文件的人就不能下载它并在文本编辑器中打开它来查看这些详细信息吗?
如果是这样,我是否应该像这样将连接详细信息传递到php文件:
<?php
$server = $_POST['server'];
$database = $_POST['database'];
$username = $_POST['username'];
$password = $_POST['password'];
$db = new PDO('mysql:host=$server;dbname=$database', $username, $password);
2条答案
按热度按时间gcmastyq1#
你的变量
$server
以及$database
在使用单引号时没有正确解释'
. 你需要用双引号"
正确传递变量值(有关详细信息,请参阅php中单引号字符串和双引号字符串的区别?)按如下所示更改代码。ee7vknir2#
在我的评论中展开一点,理想情况下,您希望将其放在单独的文件中,其中一个用于全局配置,然后您可以像下面的示例一样导入到其他模块中。
config.php文件:
数据库连接文件:
请注意pdo连接中的字符串是如何被双引号括起来的,因为如果是单引号,字符串插值将不起作用。