#include #include #include #include #include #define DB_SERVER "127.0.0.1" #define DB_USERNAME "root" #define DB_PASSWORD "xxx" #define DB_DATABASE "information_schema" void finish_with_error(MYSQL *con) { fprintf(stderr, "[%i] %s\n", mysql_errno(con), mysql_error(con)); mysql_close(con); exit(1); } bool send_query(MYSQL *mysql_con, const char* query) { printf("Sending query: %s\n", query); int res = mysql_query(mysql_con, query); if (res != 0) { fprintf(stderr, "mysql_query error: %i\n", res); return false; } MYSQL_RES *result = mysql_store_result(mysql_con); if (result == NULL) { printf("No result-set\n"); } else { MYSQL_ROW row = mysql_fetch_row(result); printf("Result: %s\n", row[0]); mysql_free_result(result); } printf("\n"); return true; } int main(int argc, char** argv) { MYSQL *mysql_con = NULL; bool reconnect = 1; /* init connection object */ mysql_con = mysql_init(NULL); if (!mysql_con) { fprintf(stderr, "%s\n", "debug: could not initialize database"); exit(1); } /* enable auto-reconnect */ if (mysql_options(mysql_con, MYSQL_OPT_RECONNECT, &reconnect)) { fprintf(stderr, "mysql_options failed."); } /* connect to server */ if (mysql_real_connect(mysql_con, DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE, 0, NULL, CLIENT_MULTI_RESULTS) == NULL) { fprintf(stderr, "Failed to connect.\n"); finish_with_error(mysql_con); } /* set session wait_timeout */ if (!send_query(mysql_con, "SET SESSION wait_timeout=5")) { finish_with_error(mysql_con); } /* send query #1 */ if (!send_query(mysql_con, "SELECT 1")) { finish_with_error(mysql_con); } /* wait until connection times-out */ printf("Waiting for 10s\n"); sleep(10); /* send query #2 */ if (!send_query(mysql_con, "SELECT 2")) { finish_with_error(mysql_con); } printf("Test successfully completed\n"); mysql_close(mysql_con); return 0; }