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

Undslippende enkelte anførselstegn i PHP/MySQL-indsæt virker ikke

Indsæt streng med enkelt anførselstegn(' ) eller dobbelt anførselstegn(" ) i mysql

Bare brug addslashes(); i Insertion og stripslashes(); for at hente data.

$str = "Hello Friend's.. Hows you all"s.";
// Outputs: Hello Friend\'s..Hows you all\"s.
echo addslashes($str);

stripslashes — Fjern anførselstegn streng citeret med addslashes() . Returnerer en streng med skråstreg fjernet. (\' bliver ' og så videre.) Dobbelte omvendte skråstreg (\\ ) laves til en enkelt omvendt skråstreg (\ ).

$str = "Hello Friend\'s.. Hows you all"s."; // Outputs: Hello Friend's.. Hows you all"s.
echo stripslashes($str);

Nu kommer vi til sagen. Hvis vi indsætter streng i databasen med enkelt eller dobbelt anførselstegn som denne:

$str = “Hello Friend's.. Hows you all"s.”;
$query = “INSERT INTO tbl (description) VALUES (‘$str’)”;

Dette vil opstå fejl, men hvis vi bruger addslashes($str) funktion som nedenfor og indsæt derefter i databasen, så opstår der ingen fejl.

$str = “Hello Friend's.. Hows you all"s.”;
$desc_str = addslashes($str);
$query = “INSERT INTO tbl (description) VALUES (‘$desc_str’)”;

på samme måde kan vi bruge stripslashes($str) for at udskrive denne tabelfeltværdi som denne:

echo stripslashes($str);


  1. Er MariaDB JDBC-driveren påvirket af Log4j-sårbarheden?

  2. Driver.getConnection hænger ved hjælp af SQLServer-driver og Java 1.6.0_29

  3. Hvad skal jeg vælge - JSON eller SQLite?

  4. CAST() vs TRY_CAST() i SQL Server:Hvad er forskellen?