sql >> Databáze >  >> RDS >> Mysql

MySQL nemaže záznamy

Naučte se základní syntaxi řetězce PHP:

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

Generujete doslovný řetězec dotazu

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

Všimněte si, jak se váš špatný pokus o zřetězení řetězců PHP ve skutečnosti stal součástí řetězce dotazu. už jste IN php řetězec, takže v tomto řetězci nemůžete spustit PHP - PHP není rekurzivně vložitelné/spustitelné.

Kterákoli z těchto možností by fungovala:

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

ale samozřejmě vás stále nechají zranitelné vůči útokům injekce SQL .



  1. Upozornění:mysqli_stmt::bind_param():Počet proměnných neodpovídá počtu parametrů v připraveném příkazu

  2. C#:Ekvivalence datového typu Oracle s OracleDbType

  3. Redundance N+1 a konsolidace serverů

  4. Jak fungují indexy MySQL?