Memadankan Baris dalam Pangkalan Data dengan PDO: Isu Penyelesaian Masalah
Apabila cuba menyemak baris pendua dalam pangkalan data menggunakan PDO, anda mungkin menghadapi senario di mana keputusan berbeza daripada jangkaan anda. Berikut ialah potensi masalah dan penyelesaian untuk dipertimbangkan:
Masalah yang Disebabkan oleh Ralat SQL
Sahkan bahawa pertanyaan anda dilaksanakan tanpa ralat. PDO boleh mengembalikan '0' sebagai pengiraan keputusan walaupun tiada padanan, menunjukkan isu pertanyaan.
Masalah yang Disebabkan oleh Keadaan
Semak syarat pertanyaan anda untuk eksklusif. Keadaan seperti "WHERE col=1 AND col=2" akan sentiasa mengembalikan '0'. Permudahkan syarat untuk mengasingkan isu.
Masalah yang Disebabkan oleh Data
Petua Penyahpepijatan
Contoh Isu dan Penyelesaian
Anda pertanyaan termasuk rentetan dengan entiti HTML, seperti "SELECT count(*) FROM inbox WHERE ... AND from_email = "abc Offers <[email protected]>"". Apabila dilaksanakan dalam phpMyAdmin, pertanyaan ini berfungsi, tetapi mengembalikan '0' melalui PDO. Entiti HTML ("<" dan ">" ditukar kepada entiti) menyebabkan ketidakpadanan. Mengubah suai pertanyaan untuk mengalih keluar entiti ini menyelesaikan isu:
$sql = 'SELECT count(*) FROM inbox WHERE uid = ? AND from_email = "abc Offers [email protected]"'; $result = $link->prepare($sql); $result->execute([$email_number,$email_f]); $number_of_rows = $result->fetchColumn();
Atas ialah kandungan terperinci Mengapa Pertanyaan Padanan Baris Pangkalan Data PDO Saya Mengembalikan Sifar Walaupun Padanan Wujud?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!