#include #include #include #include #include void print_mysql_error(MYSQL *dbh, char *message) { printf("%s: (Errno: %d, SQLState: %s) %s\n", message, mysql_errno(dbh), mysql_sqlstate(dbh), mysql_error(dbh)); } int main() { MYSQL *dbh; MYSQL_RES *query_result; MYSQL_ROW row; char japanese_message[] = {(char)0x95, (char) 0x00}; char query[200],escaped_message[10]; int n, status, mode; long long sid; char *create_table_sql = "CREATE TABLE IF NOT EXISTS t (a SERIAL, b INT)"; char *insert_sql = "INSERT INTO t (b) VALUES(1)"; char *select_sql = "SELECT MAX(a) FROM t"; char *gtid_next_sql_fmt = "SET GTID_NEXT = '%s'"; char *gtid, *gtid_next, *gtid_next_sql; /* INIT */ dbh = mysql_init(NULL); status = mysql_options(dbh, MYSQL_SET_CHARSET_NAME, (void*)"utf8"); assert(status == 0); if (!mysql_real_connect(dbh, "127.0.0.1", "msandbox", "msandbox", "test", 5711, NULL, 0)) { print_mysql_error(dbh, "Error during connecting to MySQL Server"); exit(1); }; assert(mysql_query(dbh,"select version()") == 0); query_result = mysql_store_result(dbh); assert((row = mysql_fetch_row(query_result))!= NULL); printf("mysql version is: %s\n", row[0]); mysql_free_result(query_result); status = mysql_query(dbh, create_table_sql); if (status) { print_mysql_error(dbh, "Error during requesting a query"); exit(2); } mysql_autocommit(dbh, 0); for (n = 0; n < 10; n++) { mysql_query(dbh, insert_sql); } n = 1; mysql_query(dbh, select_sql); query_result = mysql_use_result(dbh); while((row = mysql_fetch_row(query_result))) { printf("%d:\t%s\n", n++, row[0]); fflush(stdout); } mysql_free_result(query_result); mysql_commit(dbh); enum enum_session_state_type type; for (type = SESSION_TRACK_BEGIN; type <= SESSION_TRACK_END; type++) { const char *data; size_t length; if (mysql_session_track_get_first(dbh, type, &data, &length) == 0) { printf("Type=%d:\n", type); printf("mysql_session_track_get_first() returns: %*.*s\n", (int) length, (int) length, data); /* check for more data */ while (mysql_session_track_get_next(dbh, type, &data, &length) == 0) { printf("mysql_session_track_get_next() returns: %*.*s\n", (int) length, (int) length, data); } } else { printf("Session status did not changed for type: %d\n", type); } } mysql_close(dbh); }