mysqli_connect 使用凭据作为单个变量

Ric*_*ard -2 php mysqli

我正在尝试使用凭据作为单个变量(只是为了简单和易于维护)使用 PHP 连接到我的本地主机数据库,但我无法让它工作。

以下工作正常:

$con=mysqli_connect('localhost', 'root', '','news_db');
Run Code Online (Sandbox Code Playgroud)

但以下没有:

$con_details="'localhost', 'root', '','news_db'";
$con=mysqli_connect($con_details);
Run Code Online (Sandbox Code Playgroud)

我收到“没有这样的主机已知”的错误

Ale*_*ijk 5

mysqli_connect函数具有以下签名:

mysqli_connect ([ string $host = ini_get("mysqli.default_host") 
                [, string $username = ini_get("mysqli.default_user") 
                [, string $passwd = ini_get("mysqli.default_pw") 
                [, string $dbname = "" 
                [, int $port = ini_get("mysqli.default_port") 
                [, string $socket = ini_get("mysqli.default_socket") 
          ]]]]]] ) : mysqli
Run Code Online (Sandbox Code Playgroud)

也就是说,它需要六个(可选)参数,任何缺少的参数都从 PHP ini 文件中获取。您无法将主机、用户名、密码和数据库名称连接成一个字符串,因为这只是一个mysqli_connect可以理解为主机名的参数。

如果您必须将凭据存储为单个字符串,如下所示:

"host,user,password,database"
Run Code Online (Sandbox Code Playgroud)

考虑将这个字符串分解成几个部分:

$parts = explode(mystring, ',');
Run Code Online (Sandbox Code Playgroud)

然后将零件送入mysqli_connect

$con = mysqli_connect($parts[0], $parts[1], $parts[2], $parts[3]);
Run Code Online (Sandbox Code Playgroud)

但是,这样做可能不是一个好主意,因为密码可能包含您用来拆分字符串的字符。