如何顯示 mysqli_query 錯誤
P粉713846879
2023-09-01 13:52:57
<p>我試圖在我的php腳本中顯示mysqli_error,如果查詢失敗,我會不斷收到黑頁,但在成功時回傳回應,如果查詢失敗,mysqli_error($conn)和mysqli_errno($conn)都只是顯示黑頁。
這是我的資料庫連線腳本</p>
<pre class="brush:php;toolbar:false;"><?php
$ser = "test";
$user = "test";
$pass = "test";
$db="test";
$conn = mysqli_connect($ser, $user, $pass, $db);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
?></pre>
<p>我的 PHP 查詢</p>
<pre class="brush:php;toolbar:false;"><?php
include 'conn.php';
if ($conn) {
$sql = "INSERT INTO tbl_users (userId, email, pass) VALUES ('$userId', '$email', '$pass')";
if (mysqli_query($conn, $sql)) {
echo json_encode(array(
"status" => "Ok",
"message" => "Success",
));
} else {
echo json_encode(array(
"status" => "Error",
"message" => mysqli_error($conn),
));
}
}</pre>
<p>如果查詢運行正確,則能夠獲得成功回應,但如果使用<strong>ini_set('display_errors', 1);</strong> ,一旦發生錯誤,我會得到一個空白頁;< /strong> 我得到整頁錯誤但我只需要mysqli_error 或mysqli_errno。 </p>
自 PHP 8.1 起,mysqli 錯誤報告的預設設定為 MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT,這會導致錯誤拋出例外,而不僅僅是回傳
false
。如果您想檢查程式碼中的錯誤而不是取得異常,請使用
更好的解決方案是使用異常處理程序。