Deleting Data from MySQL Database

-
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.
Afficher la suite 

1 réponse

Messages postés
14566
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
17 octobre 2019
136
0
Merci
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"
Commenter la réponse de NHenry