mysql で永続接続するか、毎回 connect するかの stack overflow リンク集
mysql_ping だけなら結構速いので、ping に失敗した時に close して connect し直せば良い。
以下のようなコードで良さそう。
bool MysqlUtil::init(const char *host, const char *user, const char *pass, const char *dbname){
if( _isInit ){
if(0 == mysql_ping(_mysql) ){
return true;
}
mysql_close(_mysql);
}
_mysql = mysql_init(NULL);
if( !mysql_real_connect(_mysql, host, user, pass, dbname, 0, NULL, 0) ){
fprintf(stderr, "ERROR:mysql_real_connect()\n");
return false;
}
if( 0 != mysql_set_character_set(_mysql, "utf8") ){
fprintf(stderr, "ERROR:mysql_set_character_set()\n");
return false;
}
_isInit = true;
return true;
}
mysql 側の設定
No comments:
Post a Comment