【问题标题】:mysqli_connect($mysql_host, $mysql_user, $mysql_password) or die('Error establishing connection')mysqli_connect($mysql_host, $mysql_user, $mysql_password) or die('错误建立连接')
【发布时间】:2019-03-28 04:57:50
【问题描述】:

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

【问题讨论】:

  • 先尝试阅读手册而不是提问:- mysqli::__construct
  • 好的,谢谢……我会阅读手册……我正在看教程,这种困惑困扰着我……@alive

标签: php database-connection boolean-logic


【解决方案1】:

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

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

【讨论】:

  • 你可以简单地给他手动链接而不是回答。 [顺便说一句,我根本不是反对者]。您可以查看:-mysqli::__construct
  • @catcon 不,它是一个对象
【解决方案2】:

根据手册mysqli::__construct

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

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

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

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

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

参考:-mysqli_connect_error()

【讨论】:

  • 感谢帮助@alive to die 当数据库连接对象返回时,我们能说它是布尔真吗(1)...我很困惑的是如果数据库连接没有返回并且错误产生了,是不是意味着boolean false (0)
  • When database connection object is returned, can we say it is boolean true -> 否。如果没有返回数据库连接并产生错误,是否意味着布尔型false -> 否,它会返回一个带有错误编号和消息的错误对象,你需要检查 [mysqli_connect_error() 将要做什么]
  • 感谢@Alive to Die 的帮助
【解决方案3】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-14
    • 1970-01-01
    • 1970-01-01
    • 2018-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多