gpt4 book ai didi

php - 尝试创建用于连接数据库的字符串时出错(mysql :host =' . DB_HOST . ' ;dbname=' . DB_DATABASE;)

转载 作者:行者123 更新时间:2023-11-29 14:34:34 25 4
gpt4 key购买 nike

我在网上看到了几个使用类似方法的示例,但我不明白为什么它在这里失败。

我尝试对 DB_HOST 和 DB_DATABASE 使用 2 个参数,我想将它们附加到字符串并将其分配给以下变量:

外部 PHP 文件:

define( 'DB_HOST',         'localhost');
define( 'DB_DATABASE', 'mydb');

class Database {
private static $dsn = 'mysql:host=' . DB_HOST . ';dbname=' . DB_DATABASE;
...
}

我尝试过使用单引号、双引号以及我能想到的所有内容,但出现以下错误:

Parse error: syntax error, unexpected '.', expecting ',' or ';'

我也尝试将 define( 'DB_HOST', 'localhost'); 放入类中(尽管这并不理想,仅用于测试目的),但后来我'我得到:

Parse error: syntax error, unexpected T_STRING, expecting T_FUNCTION

知道可能出了什么问题吗?

PS:我也尝试使用普通的 PHP 变量(如 $db_host),但没有成功:S

最佳答案

您无法初始化properties这样,您只能将它们初始化为常量值。即使这样也会给出同样的错误:

class Sample {
private static $dsn = 'a' . 'b';
}

您需要在其他地方初始化它。例如:

define( 'DB_HOST',         'localhost');
define( 'DB_DATABASE', 'mydb');

class Database {
private static $dsn;
public static function setup() {
self::$dsn = 'mysql:host=' . DB_HOST . ';dbname=' . DB_DATABASE;
}
}

Database::setup();

关于php - 尝试创建用于连接数据库的字符串时出错(mysql :host =' . DB_HOST . ' ;dbname=' . DB_DATABASE;),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9349622/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com