Cara Mengelakkan Padanan Tersilap dalam Pertanyaan MySQL dengan Mencegah Penukaran Berangka

DDD
Lepaskan: 2024-10-24 08:50:30
asal
189 orang telah melayarinya

How to Avoid Mistaken Matches in MySQL Queries by Preventing Numeric Conversion

Memahami Penukaran Numerik dalam Pertanyaan mySQL

Dalam mySQL, pertanyaan seperti SELECT * FROM table WHERE email=0 secara tidak dijangka mengembalikan semua baris, walaupun ketiadaan '0 ' nilai dalam medan e-mel jadual. Ini berlaku kerana medan e-mel, biasanya jenis varchar, mengalami penukaran automatik kepada integer.

Memandangkan medan varchar boleh memuatkan aksara bukan digit, sebarang rentetan e-mel yang tidak mempunyai perwakilan integer yang sah akan menjadi lalai kepada 0. Penukaran ini boleh membawa kepada padanan palsu dan potensi kelemahan keselamatan.

Untuk mengelakkan isu ini tanpa mengubah suai pertanyaan, adalah penting untuk memastikan medan rentetan hanya dibandingkan dengan nilai rentetan. Format pertanyaan yang betul untuk perbandingan tersebut ialah:

<code class="sql">SELECT * FROM table WHERE email='0';</code>
Salin selepas log masuk

Dengan melampirkan nilai perbandingan dalam petikan tunggal (' '), medan e-mel kekal sebagai rentetan, menghalang penukaran angka dan memastikan padanan yang tepat.

Atas ialah kandungan terperinci Cara Mengelakkan Padanan Tersilap dalam Pertanyaan MySQL dengan Mencegah Penukaran Berangka. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!