Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menggabungkan Pembolehubah dengan Benar dengan Pernyataan yang Disediakan dalam SQL?
Apabila menggunakan pernyataan yang disediakan, adalah penting untuk menggabungkan pembolehubah dengan pertanyaan SQL dengan betul. Sintaks yang salah boleh membawa kepada ralat, seperti yang ditemui dalam serpihan kod berikut:
$sql = 'SELECT * FROM `users` WHERE username LIKE \'%{$var}%' '; // Error: Number of variables doesn't match number of parameters $sql = 'SELECT * FROM `users` WHERE username LIKE %{?}% '; // Error: Wrong SQL
Untuk mengelakkan ralat ini, gunakan langkah berikut:
$likeVar = "%" . $yourParam . "%";
$stmt = $mysqli->prepare("SELECT * FROM REGISTRY where name LIKE ?");
$stmt->bind_param("s", $likeVar);
Dalam contoh ini, $likeVar mengandungi nilai yang akan dicari dengan kad bebas ("%...%"). Mengikatnya pada jenis parameter s (rentetan) memastikan ia dikendalikan dengan betul dalam pertanyaan pangkalan data.
Jika anda memerlukan carian tidak sensitif huruf besar-besaran, anda boleh menambah klausa COLLATE utf8mb4_bin pada anda pertanyaan:
$stmt = $mysqli->prepare("SELECT * FROM REGISTRY where name LIKE ? COLLATE utf8mb4_bin");
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Pembolehubah dengan Benar dengan Pernyataan yang Disediakan dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!