sql >> Database teknologi >  >> RDS >> Mysql

Er dette en sikker metode til at indsætte formulardata i en MySQL-database?

Eksemplet, du gav, indsætter indlægget vars i databasen uden først at analysere dem for ondsindet brugerinput. Brug typecasting, escape/filter-funktioner, forberedte sætninger osv., før du bruger dem til at interagere med din DB.

En generel regel at gå efter er aldrig at stole på brugerinput. NOGENSINDE!

Tjek ud:Bedste måde at stoppe SQL Injection i PHP

Som svar på dit spørgsmål, her er, hvordan du ville håndtere hele formularen ved hjælp af PDO-forberedte erklæringer.

$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));

Hvis du blot ønsker at indsætte en kolonne i posten, som du bad om, ville syntaksen være:

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

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


  1. Hvordan kan jeg kontrollere, om mysql-tabelkolonnen overhovedet eksisterer?

  2. MySQL udenlandsk nøgle ved sletning

  3. SQL UPDATE med underforespørgsel, der refererer til den samme tabel i MySQL

  4. Kan jeg bruge den samme fremmednøglebegrænsning i to forskellige tabeller?