Ralat dan penyelesaian PHP PDO biasa: elakkan perangkap dalam pembangunan

WBOY
Lepaskan: 2024-02-20 10:46:02
ke hadapan
1312 orang telah melayarinya

editor php Xiaoxin akan memperkenalkan anda kepada ralat dan penyelesaian PHP PDO biasa secara terperinci untuk membantu pembangun mengelakkan perangkap biasa semasa pembangunan projek. Dengan mempelajari dan menguasai penggunaan PDO yang betul dalam pembangunan PHP, kestabilan dan kecekapan projek dapat dipertingkatkan, dan kualiti dan keselamatan kod dapat dipastikan. Mengelakkan kesilapan biasa semasa proses pembangunan akan membantu meningkatkan kemahiran teknikal pembangun dan menghadapi pelbagai cabaran dan masalah dengan lebih baik.

Walau bagaimanapun, anda juga mungkin menghadapi beberapa ralat semasa menggunakan PDO. Ralat ini boleh disebabkan oleh pelbagai faktor, termasuk ralat pengekodan, ralat konfigurasi pangkalan data, atau bahkan kegagalan perkakasan.

Berikut ialah beberapa ralat PDO biasa dan penyelesaiannya:

  1. PDOException: Ini adalah salah satu ralat yang paling biasa dalam PDO. Ia biasanya disebabkan oleh ralat pengekodan atau ralat konfigurasi pangkalan data. Untuk menyelesaikan ralat ini, anda perlu menyemak kod anda untuk ralat dan pastikan pangkalan data dikonfigurasikan dengan betul.

Kod demo:

try {
$dbh = new PDO("Mysql:host=localhost;dbname=my_database", "username", "passWord");
} catch (PDOException $e) {
echo $e->getMessage();
}
Salin selepas log masuk
  1. SQLSTATE[HY000] [2002] Sambungan ditolak: Ralat ini biasanya disebabkan oleh ketidakupayaan untuk menyambung ke pangkalan data. Untuk menyelesaikan ralat ini, anda perlu memastikan bahawa pangkalan data sedang berjalan dan anda mempunyai maklumat sambungan yang betul.

Kod demo:

try {
$dbh = new PDO("mysql:host=localhost;dbname=my_database", "username", "password");
} catch (PDOException $e) {
echo $e->getMessage();
}
Salin selepas log masuk
  1. SQLSTATE[42S02] [1054] Lajur "column_name" yang tidak diketahui dalam "field list": Ralat ini biasanya disebabkan oleh penggunaan nama lajur yang tidak wujud dalam pertanyaan. Untuk menyelesaikan ralat ini, anda perlu menyemak sama ada nama lajur dalam pertanyaan adalah betul.

Kod demo:

$query = "SELECT * FROM table_name WHERE column_name = "value"";
$stmt = $dbh->prepare($query);
$stmt->execute();
Salin selepas log masuk
  1. SQLSTATE[23000] [1062] Entri pendua "value" untuk "column_name" kunci: Ralat ini biasanya disebabkan oleh pelanggaran kekangan unik semasa memasukkan atau mengemas kini data. Untuk menyelesaikan ralat ini, anda perlu memastikan bahawa data tidak melanggar sebarang kekangan unik.

Kod demo:

$query = "INSERT INTO table_name (column_name) VALUES ("value")";
$stmt = $dbh->prepare($query);
$stmt->execute();
Salin selepas log masuk
  1. SQLSTATE[22003] [1216] Tidak boleh menambah atau mengemas kini baris anak: Ralat ini biasanya disebabkan oleh kekangan kunci asing. Untuk menyelesaikan ralat ini, anda perlu memastikan bahawa data dalam jadual anak adalah konsisten dengan data dalam jadual induk.

Kod demo:

$query = "INSERT INTO child_table (column_name) VALUES ("value")";
$stmt = $dbh->prepare($query);
$stmt->execute();
Salin selepas log masuk

Atas ialah kandungan terperinci Ralat dan penyelesaian PHP PDO biasa: elakkan perangkap dalam pembangunan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:lsjlt.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan