mysqli_connect($mysql_host, $mysql_user, $mysql_password) 或者 die('Error establishing connection')

mysqli_connect($mysql_host, $mysql_user, $mysql_password) or die('Error establishing connection')

我知道当这条语句被执行时,它首先检查即 mysqli_connect 是否成功,然后另一个 die 语句没有被执行。 我在这里想知道的是,如果第一次检查即 mysqli_connect 成功,是否意味着它与 boolean true 相同?如果 mysqli_connect 不成功,是否意味着它与 boolean false 相同?

该语句正在返回一个对象,而不是任何布尔值。尝试将它存储在一个变量中,然后 var_dump 看看它返回了什么。它 Returns 表示与 MySQL 服务器 的连接的对象。

在不成功的情况下,or语句会执行并由于die()而停止执行

我认为 mysqli_connect_error() 会帮助您解决这个问题。

它return一个描述错误的字符串。

https://www.php.net/manual/de/mysqli.connect-error.php

基于手册mysqli::__construct

Return Values: Returns an object which represents the connection to a MySQL Server.

所以当连接成功时它会return一个数据库连接对象。

如果不是,则 or 条件将执行您在其中写入的消息,即:- 建立连接时出错

为了获得更好的实践,请始终尝试找出连接时出现的问题,以便您可以修复它。所以像下面这样写:-

mysqli_connect($mysql_host, $mysql_user, $mysql_password) or die(mysqli_connect_error());

参考:- mysqli_connect_error()