Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mendapatkan Ralat MySQL daripada Kaedah `prepare()` PDO dalam PHP?

Bagaimana untuk Mendapatkan Ralat MySQL daripada Kaedah `prepare()` PDO dalam PHP?

Susan Sarandon
Lepaskan: 2024-12-21 06:51:09
asal
629 orang telah melayarinya

How to Retrieve MySQL Errors from PDO's `prepare()` Method in PHP?

Bagaimana untuk mendapatkan semula ralat pertanyaan daripada PDO prepare() dalam PHP?

Masalah:

Pertimbangkan kod PHP berikut :

$st = $db->prepare("SELECT * FROM c6ode");
Salin selepas log masuk

Bagaimana anda boleh mendapatkan ralat MySQL yang dimaksudkan untuk pertanyaan dalam ini instance?

Penyelesaian:

Untuk mendapatkan semula maklumat ralat daripada prepare(), anda mesti:

  1. Tetapkan atribut mod ralat PDO: :ATTR_ERRMODE kepada PDO::ERRMODE_EXCEPTION.
  2. Lumpuhkan Ciri PDO::ATTR_EMULATE_PREPARES, kerana ia menghalang pelayan MySQL daripada memproses kenyataan dengan serta-merta.

Berikut ialah contoh:

<?php
$pdo = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'localonly', 'localonly');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$pdo->prepare('INSERT INTO DoesNotExist (x) VALUES (?)');
Salin selepas log masuk

Kod ini akan membuang pengecualian dan mencetak perkara berikut mesej ralat:

SQLSTATE[42S02]: Base table or view not found: 
1146 Table 'test.doesnotexist' doesn't exist
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Ralat MySQL daripada Kaedah `prepare()` PDO dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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