sql >> Database >  >> RDS >> Mysql

Is dit een veilige methode om formuliergegevens in een MySQL-database in te voegen?

Het voorbeeld dat je hebt gegeven, voegt de post-vars in de database in zonder ze eerst te analyseren op slechte gebruikersinvoer. Gebruik typecasting, escape-/filterfuncties, voorbereide instructies enz. voordat u ze gebruikt om met uw DB te communiceren.

Een algemene regel is om gebruikersinvoer nooit te vertrouwen. OOIT!

Bekijk:Beste manier om SQL-injectie te stoppen in PHP

In antwoord op uw vraag, hier is hoe u het volledige formulier zou behandelen met behulp van door de BOB opgestelde verklaringen.

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

Als u slechts één kolom in de record wilt invoegen zoals u gevraagd heeft, zou de syntaxis zijn:

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

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


  1. Definieer voorwaardelijk een cursor

  2. (+) =operator in oracle sql in where-clausule

  3. MySQL Trigger kan de tabel niet bijwerken - krijg ERROR 1442

  4. MySQL LOAD_FILE retourneert NULL