Bagaimana untuk memaparkan ralat mysqli_query
P粉713846879
2023-09-01 13:52:57
<p>Saya cuba memaparkan mysqli_error dalam skrip php saya dan saya terus mendapat halaman hitam jika pertanyaan gagal tetapi mengembalikan respons pada kejayaan dan jika pertanyaan gagal mysqli_error($conn) dan mysqli_errno($conn) Hanya menunjukkan halaman hitam.
Ini ialah skrip sambungan pangkalan data saya</p>
<pre class="brush:php;toolbar:false;"><?php
$ser = "ujian";
$user = "ujian";
$lulus = "ujian";
$db="ujian";
$conn = mysqli_connect($ser, $user, $pass, $db);
jika (!$conn) {
die("Sambungan gagal: " . mysqli_connect_error());
}
?></pra>
<p>Pertanyaan PHP Saya</p>
<pre class="brush:php;toolbar:false;"><?php
sertakan 'conn.php';
jika ($conn) {
$sql = "MASUKKAN KE DALAM tbl_users (userId, e-mel, pas) NILAI ('$userId', '$email', '$pass')";
if (mysqli_query($conn, $sql)) {
echo json_encode(array(
"status" ="Ok",
"mesej" = "Berjaya",
));
} lain {
echo json_encode(array(
"status" ="Ralat",
"mesej" =>
));
}
}</pre>
<p>Jika pertanyaan berjalan dengan betul, saya boleh mendapat jawapan yang berjaya, tetapi jika saya menggunakan <strong>ini_set('display_errors', 1);</strong> halaman;< /strong> Saya mendapat ralat halaman penuh tetapi saya hanya mahu mysqli_error atau mysqli_errno. </p>
Sejak PHP 8.1, tetapan lalai untuk pelaporan ralat mysqli ialah MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT, yang menyebabkan ralat membuang pengecualian dan bukannya mengembalikanfalse
false
.Jika anda ingin menyemak ralat dalam kod anda dan bukannya mendapatkan pengecualian, gunakan
Penyelesaian yang lebih baik ialah menggunakan pengendali pengecualian.