sql >> Databáze >  >> RDS >> Mysql

Únikové jednoduché uvozovky v PHP/MySQL insert nefunguje

Vložte řetězec s jednoduchou uvozovkou (' ) nebo dvojité uvozovky (" ) v mysql

Stačí použít addslashes(); v Insertion a stripslashes(); pro načtení dat.

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

stripslashes — Zrušte uvozování řetězce uvozovaného pomocí addslashes() . Vrátí řetězec s odstraněnými zpětnými lomítky. (\' se změní na ' a tak dále.) Dvojitá zpětná lomítka (\\ ) jsou vytvořeny jako jediné zpětné lomítko (\ ).

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

Nyní se dostáváme k věci. Pokud vložíme řetězec do databáze s jednoduchou nebo dvojitou uvozovkou takto:

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

K tomu dojde, ale pokud použijeme addslashes($str) fungovat jako níže a poté vložit do databáze, nedojde k žádné chybě.

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

podobně můžeme použít stripslashes($str) pro tisk této hodnoty pole tabulky takto:

echo stripslashes($str);


  1. Vysvětlení výkonu a úrovní služeb Azure SQL Database

  2. Závažná chyba:Maximální doba provádění 30 sekund byla překročena v ...\model.php na řádku 183

  3. phpexcel export do excelu s obrázkem

  4. Je nutné volání PDOStatement::closeCursor() v případě, že objekt příkazu není nastaven?