Mysql
 sql >> база данни >  >> RDS >> Mysql

Вмъкване на стойност $variable или $_POST в таблицата на mysql

В SQL стойностите на низове трябва да бъдат цитирани:

VALUES ('value1', 'value2')"

Когато използвате променливи:

VALUES ($var1, $var2)");

Те не са цитирани ... освен ако кавичките не са в самите стойности.

Така че, ако $var1 = 'value1'; $var2 = 'value2' след това (след като променливите са интерполирани във вашия низ) вашият SQL изглежда така:

VALUES (value1, value2)"

Можете да разрешите непосредствения си проблем, като добавите кавички:

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

но това не отстранява главната ви уязвимост в сигурността и позволява на вашите данни да разбият заявката по различни начини.

Трябва да избягвате да създавате SQL изрази чрез сглобяване на низове от променливи . Този начин води до дупки в сигурността на SQL Injection. Използвайте интерфейс, който поддържа свързани аргументи . Те ще се справят с цитирането и бягството вместо вас.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Проверете дали съществува ред, Laravel

  2. NHibernate IPreUpdateEventListener, IPreInsertEventListener не се записва в DB

  3. Eclipse - добавете .jar към динамичен уеб проект

  4. Показване на всяка стойност на DISTINCT поле само веднъж с помощта на цикъл

  5. ограничение на записите на mysql workbench