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

Това защитен метод ли е за вмъкване на данни от формуляра в MySQL база данни?

Примерът, който предоставихте, вмъква переменните на публикациите в базата данни, без първо да ги анализира за злонамерен потребителски вход. Използвайте привеждане на типове, функции за екраниране/филтриране, подготвени оператори и т.н., преди да ги използвате за взаимодействие с вашата БД.

Общо правило, което трябва да следвате, е никога да не се доверявате на въвеждането на потребителя. НИКОГА!

Вижте:Най-добрият начин да спрете SQL инжектирането в PHP

В отговор на вашия въпрос, ето как бихте се справили с целия формуляр, използвайки подготвени изрази за PDO.

$stmt = $db->prepare('INSERT INTO Persons (FirstName, LastName, Age) VALUES (:first_name, :last_name, :age)');

$stmt->execute(array(':first_name' => $first_name,':last_name' => $last_name, ':age' => $age));

Ако просто искате да вмъкнете една колона в записа, както поискахте, синтаксисът ще бъде:

$stmt = $db->prepare('INSERT INTO Persons (FirstName) VALUES (:first_name)');

$stmt->execute(':first_name', $first_name);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Грешка при подготвени изявления на Java MYSQL:Проверете синтаксиса за използване близо до '?' на ред 1

  2. mysql показва Брой редове от друга таблица във всеки ред

  3. Вземете всички знаци преди интервал в MySQL

  4. RuntimeError:работи извън контекста на приложението

  5. Отделно срещу групиране по