2009-07-16 13 views
0

データベースに接続されたMysql C APIのCプログラムを使用して起動が成功しましたが、SELECT、INSERT操作を実行しようとすると、エラーが送出されました "私のVPSサーバー上でが消えてしまいましたが、同じものがローカルで正常に動作します。テーブルから行を選択中にエラーが発生しました

The VPS Server Mysql Server version is : 5.0.81-community MySQL Community Edition (GPL) . wait_timeout value: 28800

Local Machine Mysql Server version is : 5.0.77 Source distribution.

しかし、それは(ローカルおよびVPSサーバー)問題なく正常に動作しますPHPを使用して同じデータベースにアクセスするのMySQL C APIを使用して呼び出し中にのみ発生します。それは、このようなMySQLのクエリを実行するか、またはこれを行うに任意のより良い方法を提案するための正しい方法

int fetch_information_from_tbl() 
{ 
     MYSQL_RES *result; 
     MYSQL_ROW row; 
     char query_def1[100]; 
     unsigned int num_fields; 
     int tblid; 

     /***EDITED FOR MORE INFORMATION START ***/ 
     // Tried to ping and set reconnection still the same error 
     /* try a ping */ 
     if (mysql_ping(mysql)) { 
      fprintf(stderr, "Cannot ping database: Error: %s\n",mysql_error(mysql)); 
      } 
     my_bool reconnect = 0; 
     if(mysql_options(mysql, MYSQL_OPT_RECONNECT, &reconnect)){ 
      fprintf(stderr, "Mysql Option Error: %s\n",mysql_error(mysql)); 
     } 
     /***EDITED FOR MORE INFORMATION ENDS***/ 

     sprintf(query_def1, "SELECT tblid FROM test_table"); 
     if (mysql_query(mysql, query_def1)) { 
     fprintf(stderr, "%s\n", mysql_error(mysql)); 
     exit(1); 
     } 

     result = mysql_store_result(mysql); 
     num_fields = mysql_num_fields(result); 
     row = mysql_fetch_row(result); 
     if (row) 
     { 
       tblid = atoi(row[0]); 
       printf("Fetched Table ID is: %d\n",tblid) 
     } 

} 

ですか? SELECT操作を実行中にこのエラーが発生する場合はどうなりますか?前もって感謝します。

答えて

1

接続がまだオンになっているかどうかを確認するには、mysql_pingを使用する必要があります。 mysqlサーバのmysqlアイドルタイムアウトプロパティを確認してください。その特定の期間にクライアントとサーバーの間にアクティビティがない場合、サーバーは接続を閉じます。これを変更するか、mysql_pingを使用して接続を復活させることができます。

phpの場合は、クエリごとにサーバーに接続して同じ接続を切断すると思います。

+0

ありがとうniranjan。私はmysql_ping(mysql)と同じエラーをスローしてみました.MySQLサーバーがなくなりました。だから、どのような場合ですか?そして、どのようにmysqlのアイドル時間の値を確認するには? – Webrsk

+0

Googleの情報をお待ちください。接続中にmysql_optionを使用してauto_reconnectをオンにします。これをチェックしてください http://dev.mysql.com/doc/refman/5.0/en/mysql-ping.html –

+0

も同様にお読みください http://dev.mysql.com/doc/refman/5.0 /en/gone-away.html –

関連する問題