J'utilise une méthode ajax pour appeler un script PHP qui devrait supprimer une ligne de ma base de données en cliquant sur un bouton avec l'identifiant 'delete'.MySQL DELETE Requête en PHP non exécutable
$('#delete').click(function() {
var id = parseInt($('#content').attr('data-name'));
// The row in my database has the type integer
// Doing alert(id) correctly returns the value
$.ajax({
url : './php/delete.php',
type: 'POST',
data : id,
success: function()
{
alert('success deleting ' + id);
location.reload();
// These both get called correctly, but the row is not actually getting deleted
}
});
});
Mon code PHP est
<?php
$con=mysqli_connect("localhost","root","tulula15","content_test");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_query($con,"DELETE FROM htmlcontent WHERE id='$_POST[id]'");
mysqli_close($con);
?>
L'exécution de la même requête dans phpMyAdmin supprime correctement la ligne
DELETE FROM htmlcontent WHERE id=2
Ainsi, la ajax retourne avec succès, mais la requête n'est pas en cours d'exécution.
Si quelqu'un pouvait me aider à résoudre ce problème, je vous serais très reconnaissant de bien vouloir ..
Vous êtes extrêmement vulnérable à l'injection SQL. –
1. utiliser la gestion des erreurs mysqli lors de l'exécution de la requête et 2. jeter un oeil sur les fichiers journaux des serveurs. – arkascha
Utilisez l'instruction prepare pour paramétrer la variable $ _POST ['id'] – aarryy