2011-08-16 20 views
0

間違ったユーザまたはパスワードでサーバに接続しようとしていますが、期待通りに失敗しますが、mysql_errnoは常に0を返します。mysqlインストールに何か問題がありますか?mysql_errnoは常に0を返します

EDIT:私は接続するためにcプログラムを使用しています。本の中で

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; 
} 

出力がエラー1045を言うことになっている:
私の場合は それが0であると、接続できませんでしたが、何も印刷されません。

答えて

1

mysql_errno()は、有効な接続からのエラーのみを報告します。

エラー番号は実際のデータベースに由来します。どのようにして最初に接続せずにこれらを取り出すことができますか?あなたはAPI exampleに気づく

、彼らは私がLinuxの本から例を実装しようとしていた失敗した接続

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

のエラー番号を気にしないでください。 – dasman

+0

@dasman質問をブックの例やコードで更新する必要があるかもしれません – Phil

関連する問題