Rumah > pangkalan data > tutorial mysql > Adakah Nilai Pulangan `prepare()` MySQLi Hanya Menunjukkan Ralat Penyediaan atau Juga Ralat Pelaksanaan?

Adakah Nilai Pulangan `prepare()` MySQLi Hanya Menunjukkan Ralat Penyediaan atau Juga Ralat Pelaksanaan?

Mary-Kate Olsen
Lepaskan: 2024-12-14 18:16:12
asal
290 orang telah melayarinya

Does MySQLi's `prepare()` Return Value Indicate Only Preparation Errors or Also Execution Errors?

MySQLi Prepared Statements Error Reporting

Apabila menggunakan MySQLi untuk melaksanakan pertanyaan SQL, adalah penting untuk mengendalikan pelaporan ralat dengan berkesan. Dalam coretan kod yang disediakan, di mana nilai pulangan kaedah stmt_init() digunakan untuk mengesan ralat semasa penyediaan SQL, keraguan yang berlarutan timbul:

Adakah nilai pulangan penyata penyediaan hanya menunjukkan ralat dalam SQL penyediaan pernyataan atau juga ralat pelaksanaan?

Untuk menjelaskan perkara ini, pertimbangkan ralat alternatif berikut pendekatan pengendalian:

if($stmt_test->execute()) $errorflag=true;
Salin selepas log masuk

Kod ini menyemak ralat semasa pelaksanaan pernyataan. Walau bagaimanapun, semakan tambahan ini tidak perlu dilaksanakan kerana nilai pulangan kaedah prepare() merangkumi kedua-dua ralat penyediaan dan pelaksanaan.

Untuk memastikan pelaporan ralat yang menyeluruh, anda dinasihatkan untuk menambah baris berikut pada kod sambungan anda :

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
Salin selepas log masuk

Ini membolehkan pelaporan semua ralat mysqli. Akibatnya, anda boleh menghapuskan keperluan untuk menyemak nilai pulangan dan menulis pernyataan secara langsung, seperti yang ditunjukkan dalam contoh berikut:

$stmt = $mysqli->prepare("INSERT INTO testtable VALUES (?,?,?)");
$stmt->bind_param('iii', $x, $y, $z);
$stmt->execute();
Salin selepas log masuk

Sekiranya berlaku ralat pada mana-mana peringkat, pengecualian PHP akan dilemparkan . Pengecualian ini boleh dikendalikan atau dilaporkan seperti ralat PHP yang lain. Dengan mengkonfigurasi pelaporan ralat PHP dengan sewajarnya, anda boleh memastikan bahawa ralat dipaparkan pada skrin semasa pembangunan dan dilog pada pelayan pengeluaran.

Atas ialah kandungan terperinci Adakah Nilai Pulangan `prepare()` MySQLi Hanya Menunjukkan Ralat Penyediaan atau Juga Ralat Pelaksanaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan