我是一名PHP初学者,所以请保持温和: - )
我正在试验mysqli_error
。以下代码段会检查连接$cxn
。
7 ini_set('display_errors',1);
8 error_reporting(E_ALL);
9
10
11 echo "<html>
12 <head><title>Test MySQL</title></head>
13 <body>";
14 $host = "localhost";
15 $user = "test";
16 $password = "test";
17 $database = "PetCatalogFail";
18
19 $cxn = mysqli_connect($host,$user,$password,$database);
20
21 if(!$cxn)
22 {
23 var_dump($cxn);
24
25 $message = mysqli_error($cxn);
26 echo "$message";
27 echo "</body>";
28 echo "</html>";
29 die();
30 }
故意选择 $database
以使$cxn
为假。但是我收到以下消息:
警告:mysqli_error()要求参数1为mysqli,第25行/var/www/test.com/public_html/temp.php中给出布尔值
var_dump($cxn)
将输出设为bool(false)
。我希望在$message
中存储生成的错误消息并回显它。我错误地使用mysqli_error
吗?
答案 0 :(得分:6)
mysqli_error();
从MySQL操作中返回错误。
使用mysqli_connect_error();
进行连接。
答案 1 :(得分:2)
根据文档mysqli_error()期望将mysqli实例作为第一个参数传递。对我来说,看起来你的mysqli_connect返回(bool)false 并将它传递给mysqli_error()函数。
为了避免这样的错误,您可以使用mysqli库的“面向对象”样式:
<?php
$connection = new mysqli($host, $user, $password, $database);
// to read a connection error access the member properties
$connection->connect_errno;
// to read the error
print $connection->error;