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

Wstawianie wartości $zmiennej lub $_POST do tabeli mysql

W SQL wartości łańcuchowe muszą być ujęte w cudzysłów:

VALUES ('value1', 'value2')"

Kiedy używasz zmiennych:

VALUES ($var1, $var2)");

Nie są cytowane… chyba że cytaty znajdują się w samych wartościach.

Więc jeśli $var1 = 'value1'; $var2 = 'value2' następnie (po interpolacji zmiennych w ciągu) Twój kod SQL wygląda tak:

VALUES (value1, value2)"

Możesz rozwiązać swój najpilniejszy problem, dodając cytaty:

VALUES ('$var1', '$var2')");

ale to nie naprawia Twojej poważnej luki w zabezpieczeniach i pozwala Twoim danym przerwać zapytanie na różne sposoby.

Powinieneś unikać tworzenia instrukcji SQL przez łączenie ciągów ze zmiennych . W ten sposób dochodzi do luk w zabezpieczeniach SQL Injection. Użyj interfejsu, który obsługuje argumenty powiązane . Zajmą się cytowaniem i ucieczką za Ciebie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Specjalne wstawki znaków PHP / Mysql są obcinane

  2. Rozwiązywanie problemów z replikacją MySQL:część druga

  3. Wstawianie do mySQL wartości zakodowanej w formacie JSON ze specjalnymi znakami kończy się niepowodzeniem

  4. Co to jest schemat bazy danych?

  5. Policz częstotliwość każdego słowa