2011-05-16 10 views
2

Hey bonjour tout le monde, j'ai un petit problème avec ma petite fonction de suppression en php, ci-dessous est mon codephp mysql supprimer la base de données

function delete() 
    { 
    $q = "DELETE FROM example WHERE **author='frank'";** 

    $r = mysql_query($q) or die (mysql_error()); 
    if($r) 
    { 
     echo 'done'; 
    } 
    else 
    { 
     echo 'not done'; 
    } 
    } 

Maintenant, je ne suis pas auteur avec ce nom Frank afin que signifie qu'il ne supprime rien de la base de données, mais montre encore que fait msg

Je ne sais pas pourquoi ???? quelqu'un peut-il s'il vous plaît aidez-moi

+0

Nécessite plus d'informations. Que contient votre table d'exemple? Quel type de données est la colonne auteur? –

+0

'mysql_query()' retourne un STATEMENT HANDLE si la requête a réussi, ou FALSE s'il y avait une erreur. Une requête qui ne fait rien est toujours considérée comme une requête réussie, donc à moins que votre requête ne comporte une erreur de syntaxe ou qu'une autre erreur de base de données se produise, vous obtiendrez toujours le handle. –

Répondre

5

C'est parce qu'il n'y avait pas d'erreur, supprimer n'exécuter, il juste n'a rien fait. Vous voulez:

if(mysql_affected_rows() > 0) { 
    echo "done"; 
} 
+0

Merci onteria ... – frank

0

Une requête de suppression sera toujours réussir, même si aucune ligne ne sont réellement supprimés. Si vous souhaitez déterminer le nombre de lignes affectées par une opération d'insertion, de mise à jour ou de suppression, utilisez mysql_affected_rows()

+0

merci eric je crois que cela va résoudre mon problème .... belle journée: -> – frank

1

Il n'y a pas d'erreur dans votre requête. Il se terminera avec succès. Si vous lisez le documentation, vous verrez:

"Pour un autre type d'instructions SQL, INSERT, UPDATE, DELETE, DROP, etc, mysql_query() retourne TRUE en cas de succès ou FALSE en cas d'erreur."

Comme il n'y a pas d'erreur dans votre requête, il retournera TRUE même si rien n'a été effacé. Supprimer rien n'est pas considéré comme une erreur.

Questions connexes