所以,我有一个带
的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连接定义变量是罪魁祸首。
答案 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);