Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Ralat dan penyelesaian PHP PDO biasa: elakkan perangkap dalam pembangunan

Ralat dan penyelesaian PHP PDO biasa: elakkan perangkap dalam pembangunan

WBOY
WBOYke hadapan
2024-02-20 10:45:071269semak imbas

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();
}
  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();
}
  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();
  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();
  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();

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!

Kenyataan:
Artikel ini dikembalikan pada:lsjlt.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam