sql >> Database teknologi >  >> RDS >> Mysql

PDO/MYSQL forberedte erklæringer, der ikke undslipper tegn?

Forberedte udtalelser slipper ikke for noget. Når du forbereder en sætning, bliver din forespørgsel prækompileret, så den kun behøver pladsholderne ( ? ) skal udfyldes. Da der ikke er nogen måde at ændre SQL'en for prækompileret forespørgsel, er det ikke nødvendigt at undslippe.

For at løse dette, escape % og _ manuelt.

Tilføjet:

Lidt sund fornuft ræsonnement:I dit tilfælde, når en bruger indtaster % i et søgefelt, din $search variabel indeholder streng %%% . Hvordan ville MySQL vide, hvilken % den skal undslippe, og hvilken skal den lade være?



  1. At bruge if(isset($_POST['submit'])) til ikke at vise ekko, når scriptet er åbent, virker ikke

  2. Indsæt Blobs i MySql-databaser med php

  3. Sådan udføres 2 eller flere SQL-forespørgsler i PHP uden at forbinde tabeller

  4. Variable får NULL efter beregninger i MySQL Trigger