Deleting Data from MySQL Database

ikram - Modifié par NHenry le 27/07/2016 à 20:18
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 27 juil. 2016 à 20:20
Bonjour,
j'ai un problème avec l'exécution d'un requête SQL dans un script PHP.Toujours affiche le message d'erreur suivant:
Could not delete data: Erreur de syntaxe près de '@gmail.com' à la ligne 1

voici le code de la page delete.php
 <?php
         if(isset($_POST['delete'])) {
            $dbhost = 'localhost';
            $dbuser = 'root';
            $dbpass = '';
            $conn = mysql_connect($dbhost, $dbuser, $dbpass);
            
            if(! $conn ) {
               die('Could not connect: ' . mysql_error());
            }
    
            $email = $_POST['email'];
            
            $sql = "DELETE FROM user WHERE email = $email" ;
            mysql_select_db('support');
            $retval = mysql_query( $sql, $conn );
            
            if(! $retval ) {
               die('Could not delete data: ' . mysql_error());
            }
            
            echo "Deleted data successfully\n";
            
            mysql_close($conn);
         }else {
            ?>
               <form method = "post" action = "<?php $_PHP_SELF ?>">
                  <table width = "400" border = "0" cellspacing = "1" 
                     cellpadding = "2">
                     
                     <tr>
                        <td width = "100">User email</td>
                        <td><input name = "email" type = "email" 
                           id = "email"></td>
                     </tr>
                     
                     <tr>
                        <td width = "100"> </td>
                        <td> </td>
                     </tr>
                     
                     <tr>
                        <td width = "100"> </td>
                        <td>
                           <input name = "delete" type = "submit" 
                              id = "delete" value = "Delete">
                        </td>
                     </tr>
                     
                  </table>
               </form>
            <?php
         }
      ?>


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

1 réponse

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
Modifié par NHenry le 27/07/2016 à 20:20
Il manque les quotes autour de l'email dans ta requête.

Petit rappel, l'extension mysql est obsolète

Utiliser directement une information en provenance d'un formulaire est dangereux, l'adresse :
'; DROP TABLE user; --
ou
"; DROP TABLE user; --
ferait des dégâts (injection SQL)

J'interviens principalement en VB6 et VB.NET, avec un peu de C#, mais la modération m'amène souvent sur d'autre langages.
En VB.NET pensez à activer "Option Explicit" et "Option Strict"
0
Rejoignez-nous