Dalam PHP, PDO ialah sambungan untuk berinteraksi dengan pelbagai jenis pangkalan data. Ia menyediakan pembangun cara yang mudah untuk bekerja dengan pangkalan data sambil mengekalkan keserasian dengan berbilang pangkalan data. Walau bagaimanapun, apabila menggunakan PDO, pelbagai ralat mungkin berlaku. Dalam artikel ini, kami akan meneroka sebab mengapa PDO gagal, dan kemungkinan penyelesaian.
Ralat Sambungan
Ralat sambungan biasa termasuk: tidak dapat menyambung ke pangkalan data dan nama pengguna dan kata laluan yang salah. Apabila ralat sedemikian berlaku, PDO akan membuang PDOException. Untuk menangkap pengecualian ini dan mengendalikan ralat sambungan, anda boleh menggunakan pernyataan cuba-tangkap. Berikut ialah contoh menangkap ralat sambungan:
cuba {
$pdo = new PDO($dsn, $user, $password);
} tangkapan (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
Ralat Sintaks
Ralat sintaks ialah masalah biasa apabila menanyakan pangkalan data. Apabila ralat sintaks ditemui, PDO akan membuang PDOException. Untuk menghapuskan ralat sintaks, anda boleh menggunakan mekanisme pengendalian ralat yang disediakan oleh PDO. Berikut ialah contoh:
$sql = 'SELECT * FORM users'; // "FORM" digantikan dengan "FROM"
cuba {
$stmt = $pdo->query($sql);
} catch (PDOException $e) {
echo 'Query failed: ' . $e->getMessage();
}
Ralat parameter
Apabila cuba memasukkan, mengemas kini atau memadam rekod dalam pangkalan data, anda mesti menyediakan parameter yang betul. Jika parameter salah, PDO akan membuang PDOException. Berikut ialah contoh:
$sql = 'MASUKKAN KE DALAM pengguna (nama pengguna, kata laluan) NILAI (:nama pengguna, :kata laluan)';
$password = NULL; // Mesti berikan
$stmt->execute([ ':username' => $username, ':password' => $password ]);
echo 'Insert failed: ' . $e->getMessage();
Apabila menyambung ke pangkalan data tertentu, pengekodan yang betul mesti digunakan. Jika tidak, masalah dengan aksara bercelaru atau kegagalan menyimpan data dengan betul mungkin berlaku. Untuk menyelesaikan masalah ini, pengekodan boleh ditentukan apabila menyambung ke PDO. Berikut ialah contoh:
$user = 'username';
$password = 'password';
$pdo = new PDO($dsn, $user, $password);
echo 'Connection failed: ' . $e->getMessage();
Apabila menggunakan PDO, adalah perkara biasa untuk menghadapi ralat. Dalam artikel ini, kami meneroka empat senario kegagalan biasa, termasuk ralat sambungan, ralat sintaks, ralat parameter dan ralat pengekodan. Ralat ini boleh didiagnosis dan diselesaikan dengan mudah dengan menggunakan mekanisme pengendalian pengecualian yang disediakan oleh PDO. Paling penting, pastikan sambungan pangkalan data dan parameter betul.
Atas ialah kandungan terperinci Terokai sebab PHP PDO gagal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!