我正在尝试使用凭据作为单个变量(只是为了简单和易于维护)使用 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)
我收到“没有这样的主机已知”的错误
该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)
但是,这样做可能不是一个好主意,因为密码可能包含您用来拆分字符串的字符。