mysqli_connect($mysql_host, $mysql_user, $mysql_password) 或 die('建立连接时出错')

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

提问人:Anish 提问时间:3/28/2019 最后编辑:Anish 更新时间:3/28/2019 访问量:352

问:

我知道当执行此语句时,它首先检查mysqli_connect是否成功,然后不执行另一个 die 语句。 我在这里想知道的是,如果第一次检查(即mysqli_connect成功),这是否意味着它与布尔值相同?如果mysqli_connect不成功,是否意味着它与布尔值相同?

php 数据库连接 布尔逻辑

评论

0赞 Alive to die - Anant 3/28/2019
与其先问问题,不如尝试阅读手册:- mysqli::__construct
0赞 Anish 3/28/2019
好的,谢谢。.我会阅读手册......我正在看教程,这种困惑让我非常烦恼...... @alive

答:

1赞 Rakesh Jakhar 3/28/2019 #1

该语句返回一个对象,而不是任何布尔值。尝试将其存储在变量中,并var_dump以查看它返回的内容。它返回一个对象,表示与MySQL服务器的连接

enter image description here

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

评论

0赞 Alive to die - Anant 3/28/2019
您可以简单地给他手动链接而不是回答。[顺便说一句,我根本不是投票者]。您可以检查:- mysqli::__construct
1赞 Zain Farooq 3/28/2019
@catcon 不,它是一个对象
0赞 user7951328 3/28/2019 #2

我认为mysqli_connect_error()将帮助您解决此问题。

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

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

0赞 Alive to die - Anant 3/28/2019 #3

基于手册 mysqli::__construct

返回值:返回一个对象,该对象表示与MySQL服务器的连接。

因此,当连接成功时,它将返回一个数据库连接对象。

如果没有,那么条件将执行您写入的消息,即:- 建立连接时出错or

为了获得更好的做法,请始终尝试找出连接时出现的问题,以便您可以解决它。所以写如下:-

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

参考资料:- mysqli_connect_error()

评论

0赞 Anish 3/28/2019
谢谢你的帮助@alive死了 当数据库连接对象返回时,我们能说它是布尔值真吗(1)...我感到困惑的是,如果数据库连接未返回并产生错误,这是否意味着布尔值为假(0)
0赞 Alive to die - Anant 3/28/2019
When database connection object is returned, can we say it is boolean true -> 编号如果数据库连接没有返回并产生错误,这是否意味着布尔值 false ->不,它将返回一个带有错误号和消息的错误对象,您需要检查 [mysqli_connect_error() 将要做什么]
0赞 Anish 3/28/2019
感谢 @Alive to Die 的帮助