sql >> Databasteknik >  >> RDS >> Mysql

Undvikande av enstaka citattecken i PHP/MySQL-inlägg fungerar inte

Infoga sträng med enstaka citattecken(' ) eller dubbla citattecken(" ) i mysql

Använd bara addslashes(); i Insertion och stripslashes(); för att hämta data.

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

stripslashes — Ta bort citatsträng som citeras med addslashes() . Returnerar en sträng med omvända snedstreck borttagna. (\' blir ' och så vidare.) Dubbla omvänt snedstreck (\\ ) görs till ett enda omvänt snedstreck (\ ).

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

Nu kommer vi till saken. Om vi ​​infogar sträng i databasen med enkel eller dubbel citattecken så här:

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

Detta kommer att inträffa fel, men om vi använder addslashes($str) fungerar som nedan och infogar sedan i databasen, så kommer inget fel att inträffa.

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

på samma sätt kan vi använda stripslashes($str) för att skriva ut det tabellfältsvärdet så här:

echo stripslashes($str);


  1. PostgreSQL:s regler och nextval()/serieproblem (mycket PostgreSQL-specifikt)

  2. Inte en giltig månad i oracle när add_months används

  3. Hur kan jag göra ett genomsnitt av datum i MySQL?

  4. Hur kan jag returnera pivottabellutdata i MySQL?