Rumah > Soal Jawab > teks badan
P粉8795174032023-08-26 12:59:05
Pertama, anda perlu menerima hakikat bahawa jika pertanyaan anda tidak menemui sebarang baris, ini bermakna tiada padanan, walaupun anda boleh bersumpah data itu betul hmm>. Apabila pertanyaan tidak mengembalikan baris, ini bermakna tiada baris yang sepadan dengan kriteria. Jadi anda perlu mengetahui - mengapa. Tetapi pertama-tama anda perlu memastikan pertanyaan anda betul:
Pertama, anda perlu memastikan pertanyaan anda benar-benar berjalan tanpa ralat, kerana "tiada hasil" mungkin bermakna terdapat ralat dalam pertanyaan. Lihat jawapan ini untuk butiran: pdo dan mysqli.
Periksa keadaan anda. Terdapat syarat yang saling eksklusif, seperti WHERE col=1 AND col=2
. Ia tidak pernah mengembalikan sebarang baris. Cuba permudahkan syarat sehingga ia mula mengembalikan beberapa baris, kemudian tapis syarat untuk mendapatkan hasil yang anda inginkan.
Tetapi okey, tiada ralat, syaratnya betul, dan anda boleh bersumpah data dalam jadual sepadan dengan pertanyaan anda. Namun, terdapat beberapa perangkap:
Pertama, jika pembolehubah terlibat, pastikan ia wujuddan sebenarnya mengandungi beberapa nilai.
Kemudian semak nilai itu sendiri. Mungkin terdapat beberapa aksara yang ditukar atau tidak boleh dicetak dalam data input (atau pangkalan data). Seperti pemisah baris atau simbol yang dikodkan khas, atau aksara tertentu yang ditukar kepada entiti HTML, seperti fungsi <
和 >
。因此,包含
的查询永远不会匹配文本
。为了快速检查,您可以使用 rawurlencode()
, yang menukar semua aksara bukan Latin kepada kod, dengan itu menjadikannya kelihatan.
Masalahnya, ia hanya tekaan dan tiada siapa yang boleh memberitahu anda apa masalah sebenar kerana ia pangkalan data anda, anda masukkan data dan hanya < strong>anda yang dapat mencari masalah.
Saya menulis artikel yang menerangkan cara menyahpepijat isu PDO.
Untuk nyahpepijat isu khusus yang anda perlukan
urlencode()
akan membantu, memaparkan semua aksara yang tidak boleh dicetak dan boleh ditukar dalam pangkalan data dan input. Satu lagi masalah biasa ialah apabila anda mempunyai berbilang pangkalan data dan menyambung ke pangkalan data yang salah yang tidak mengandungi data yang diminta. Soalan ini serupa dengan soalan ini, jadi ikuti rutin yang sama dan semak sahaja baris data dan bukannya senarai jadual.
Ini adalah situasi yang jarang berlaku, tetapi yang pasti, ikuti senarai semak dalam jawapan hebat ini