php - 是否可以使用另一个文件中定义的变量来建立 PDO 数据库连接? PHP

标签 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 连接定义变量是罪魁祸首。

最佳答案

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

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

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

关于php - 是否可以使用另一个文件中定义的变量来建立 PDO 数据库连接? PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38747571/

相关文章:

mysql - 当列名相同时,对连接表的 PDO 查询

PHP PDO。查询正确时的错误号 '00000'

php - 切换到 mysqli 后 LOCAL INFILE 的问题

php - 使用 PHP-FPM 的 nginx 根文件夹的 Linux 权限/所有者

php - SQL - 选择彼此相似的 %...% 的所有行(所有相似的行)

java - 在 MySQL 中创建自定义结果集

mysql - 看不到 PHPMYADMIN 控制面板

PHP/Mysqli 缓存 mysql 主机?不尊重低 TTL

mysql - 如果没有找到结果设置默认值

PHP;原产地保护组织;带有下拉菜单的 MySQL INSERT 查询