是否可以使用另一个文件中定义的变量设置PDO DB连接? PHP

时间:2016-08-03 15:17:49

标签: php mysql pdo

所以,我有一个带

的config.php文件
define('DB_TYPE', 'mysql');
define('DB_HOST', 'localhost');
define('DB_USER', 'database_user');
define('DB_PASS', 'password');
define('DB_NAME', 'database_name');

当我定义PDO连接时,我可以使用它吗?

$dbh = new PDO("mysql:host=DB_HOST;dbname=DB_NAME;charset=utf8", "DB_USER", "DB_PASS");

我看到了这个问题:Setting up a db connection using variables from another file这是类似的,但是它使用的是mysqli_connection,我不确定它与PDO有多么不同,所以我不确定答案是否解决了我的问题。

如果我无法使用config.php文件中定义的变量,我应该使用在我的文件中本地定义它们:

$db_host = DB_HOST;
$db_user = DB_USER;

依旧......

或者我是否正确使用PDO与config.php定义的变量连接?如果是这样,我应该怎么做?

当我尝试运行我的网页时收到的错误说它无法连接到数据库主机(php_network_getaddresses:getaddrinfo失败:没有这样的主机已知。)我认为我的PDO连接定义变量是罪魁祸首。

1 个答案:

答案 0 :(得分:6)

你可以将它们用作常量,但是将它们包含在这样的字符串中会使它认为它们是字符串,而不是常量。您可以像这样修改连接:

$dbh = new PDO("mysql:host={DB_HOST};dbname={DB_NAME};charset=utf8", DB_USER, DB_PASS);

OR

$dbh = new PDO("mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=utf8", DB_USER, DB_PASS);