奇怪的MySQLi OO错误

时间:2012-04-30 19:40:34

标签: php mysqli

我会再次尝试这一点,但没有输入错误....我正在使用MySQLi连接并使用故意错误的连接变量来触发错误。

按预期工作:

  $conn = mysqli_connect("localhost","x","x","x");
  if (mysqli_connect_errno()) {
    echo "Couldn't establish database connection blah blah";
  }

这应该完全相同,但它显示“无法获取MySQLi”警告:

  $conn = new mysqli("localhost","x","x","x");
  if ($conn->connect_errno) {
    echo "Couldn't establish database connection blah blah";
  }

当连接细节良好时,两种方法都很好,尽管这不是重点。

1 个答案:

答案 0 :(得分:1)

这在某些旧版本的PHP中无法正常工作。

如果您在5.2.9之前使用的是PHP版本,那么$conn->connect_error(我认为$conn->connect_errno}方法也无法正常运行,您必须使用mysqli_connect_errno()

MySQLi constructor docs谈论这个。

  

mysqli-> connect_error属性仅在PHP 5.2.9和5.3.0版本中正常工作。如果需要与早期PHP版本的兼容性,请使用mysqli_connect_error()函数。

// May need to use the procedural method, even in OO context...
$conn = new mysqli("localhost","x","x","x");
if (mysqli_connect_error()) {
    die('Connect Error (' . mysqli_connect_errno() . ') '
            . mysqli_connect_error());
}