Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL nie usuwa rekordów

Poznaj podstawową składnię ciągów PHP:

$sql = "DELETE FROM sv_info WHERE id='.$id.' LIMIT 1";
       ^--start of PHP string                       ^---end of PHP string

Generujesz dosłowny ciąg zapytania

DELETE FROM sv_info WHERE id='.4.' LIMIT 1

Zauważ, że twoja nieudana próba łączenia ciągów PHP faktycznie stała się częścią ciągu zapytania. jesteś już IN ciąg php, więc nie można wykonać PHP wewnątrz tego ciągu - PHP nie jest rekurencyjnie możliwe do osadzenia/wykonywania.

Każdy z nich zadziała:

$sql = "DELETE FROM sv_info WHERE id='$id' LIMIT 1";
$sql = "DELETE FROM sv_info WHERE id='" . $id . "' LIMIT 1";

ale oczywiście nadal narażasz się na ataki wstrzykujące sql .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. przejście z MySQL na PostgreSQL dla Ruby on Rails ze względu na Heroku

  2. Mysqli nie pozwala na wiele zapytań?

  3. Zmień kolejność / zresetuj klucz główny automatycznego przyrostu

  4. AttributeError:moduł „mysql” nie ma atrybutu „łącznik”

  5. Potrzebujesz pomocy z hierarchicznym zapytaniem Mysql