2011-08-16 3 views
0

J'essaie de me connecter au serveur avec un mauvais utilisateur ou mot de passe et comme prévu, il échoue mais le mysql_errno renvoie toujours 0. Y at-il quelque chose de mal avec mon installation mysql ?.mysql_errno renvoie toujours 0

EDIT: J'utilise un programme c pour me connecter.

int main(int argc, char *argv[]) { 
    MYSQL my_connection; 
    mysql_init(&my_connection); 
    if (mysql_real_connect(
      &my_connection, 
      "localhost", 
      "rick", 
      "I do not know", 
      "foo", 0, NULL, 0)) { 
     printf("Connection success\n"); 
     mysql_close(&my_connection); 
    } else { 
     fprintf(stderr, "Connection failed\n"); 
     if (mysql_errno(&my_connection)) { 
      fprintf(stderr, "Connection error %d: %s\n", 
        mysql_errno(&my_connection), mysql_error(&my_connection)); 
     } 
    } 
    return EXIT_SUCCESS; 
} 

dans le livre la sortie est censé dire erreur 1045:
Dans mon cas, il est 0 et rien que la connexion a échoué est imprimé.

Répondre

1

mysql_errno() signale uniquement les erreurs d'une connexion valide.

Le numéro d'erreur provient de la base de données réelle. Comment peut-il récupérer ces sans une connexion en premier lieu?

Vous remarquerez dans le API example, ils ne prennent pas la peine avec le numéro d'erreur pour une connexion échouée

MYSQL mysql; 

mysql_init(&mysql); 
mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"your_prog_name"); 
if (!mysql_real_connect(&mysql,"host","user","passwd","database",0,NULL,0)) 
{ 
    fprintf(stderr, "Failed to connect to database: Error: %s\n", 
      mysql_error(&mysql)); 
} 
+0

J'ai essayé de mettre en œuvre un exemple d'un livre linux. – dasman

+0

@dasman Vous devriez peut-être mettre à jour votre question avec l'exemple de livre et/ou votre code – Phil

Questions connexes