Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Unikanie pojedynczych cudzysłowów we wstawce PHP/MySQL nie działa

Wstaw ciąg z pojedynczym cudzysłowem (' ) lub cudzysłów (" ) w mysql

Po prostu użyj addslashes(); we wstawianiu i stripslashes(); do pobierania danych.

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

stripslashes — Nie cytuj w cudzysłowie ciąg za pomocą addslashes() . Zwraca łańcuch z usuniętymi odwrotnymi ukośnikami. (\' staje się ' i tak dalej.) Podwójne odwrotne ukośniki (\\ ) są przekształcane w pojedynczy ukośnik odwrotny (\ ).

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

Teraz dochodzimy do sedna. Jeśli wstawimy ciąg do bazy danych z pojedynczym lub podwójnym cudzysłowem w następujący sposób:

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

Wystąpi błąd, ale jeśli użyjemy addslashes($str) funkcjonować jak poniżej, a następnie wstawić do bazy danych, wtedy nie wystąpi żaden błąd.

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

podobnie możemy użyć stripslashes($str) aby wydrukować tę wartość pola tabeli w następujący sposób:

echo stripslashes($str);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uzyskaj liczbę zduplikowanych wartości w kolumnie z wynikiem zapytania

  2. Django/MySQL-python - Odmowa połączenia przy użyciu starego (przed-4.1.1) protokołu uwierzytelniania (włączona opcja klienta 'secure_auth')

  3. Ceny zmiennoprzecinkowe czy dziesiętne?

  4. Podziel (rozbij) wartości kolumn oddzielonych przecinkami na wiersze

  5. flaga „aktywna” czy nie?