Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL ne supprime pas les enregistrements

Apprenez la syntaxe de base des chaînes PHP :

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

Vous générez la chaîne de requête littérale

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

Notez comment votre mauvaise tentative de concaténation de chaînes PHP est devenue une partie de la chaîne de requête. vous êtes déjà IN une chaîne php, vous ne pouvez donc pas exécuter PHP à l'intérieur de cette chaîne - PHP n'est pas récursivement intégrable/exécutable.

L'une ou l'autre de ces solutions fonctionnerait :

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

mais bien sûr, vous reste vulnérable aux attaques par injection SQL .