sql >> Database >  >> RDS >> Mysql

$variabele of $_POST-waarde invoegen in mysql-tabel

In SQL moeten stringwaarden tussen aanhalingstekens staan:

VALUES ('value1', 'value2')"

Als je variabelen gebruikt:

VALUES ($var1, $var2)");

Ze worden niet aangehaald ... tenzij de aanhalingstekens in de waarden zelf staan.

Dus als $var1 = 'value1'; $var2 = 'value2' dan (nadat de variabelen in je string zijn geïnterpoleerd) ziet je SQL er als volgt uit:

VALUES (value1, value2)"

U kunt uw onmiddellijke probleem oplossen door aanhalingstekens toe te voegen:

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

maar dit verhelpt niet uw grote beveiligingsprobleem en laat uw gegevens de query op verschillende manieren onderbreken.

U moet het maken van SQL-instructies vermijden door strings van variabelen samen te stellen . Deze manier leidt tot beveiligingslekken in SQL-injectie. Gebruik een interface die gebonden argumenten ondersteunt . Zij zullen het citeren en escapen voor je afhandelen.



  1. SQL-query om kolomwaarden te krijgen die overeenkomen met de MAX-waarde van een andere kolom?

  2. Een veilig inlogscript maken in PHP en MySQL zonder HTTPS

  3. 911/112:een gegevensmodel voor noodoproepen

  4. Topfouten die moeten worden vermeden bij MySQL-replicatie