?? test2_libmysqld.c
字號:
/* * A simple example client, using the embedded MySQL server library*/#include <mysql.h>#include <stdarg.h>#include <stdio.h>#include <stdlib.h>MYSQL *db_connect(const char *dbname);void db_disconnect(MYSQL *db);void db_do_query(MYSQL *db, const char *query);const char *server_groups[] = { "test2_libmysqld_SERVER", "embedded", "server", NULL};intmain(int argc, char **argv){ MYSQL *one, *two; mysql_library_init(argc, argv, (char **)server_groups); one = db_connect("test"); two = db_connect(NULL); //db_do_query(one, "SHOW TABLE STATUS");printf("one:\n"); db_do_query(one, "select * from aaa");printf("two:\n"); db_do_query(two, "SHOW DATABASES"); mysql_close(two); mysql_close(one); /* This must be called after all other mysql functions */ mysql_library_end(); exit(EXIT_SUCCESS);}static voiddie(MYSQL *db, char *fmt, ...){ va_list ap; va_start(ap, fmt); vfprintf(stderr, fmt, ap); va_end(ap); (void)putc('\n', stderr); if (db) db_disconnect(db); exit(EXIT_FAILURE);}MYSQL *db_connect(const char *dbname){ MYSQL *db = mysql_init(NULL); if (!db) die(db, "mysql_init failed: no memory"); /* * Notice that the client and server use separate group names. * This is critical, because the server does not accept the * client's options, and vice versa. */ mysql_options(db, MYSQL_READ_DEFAULT_GROUP, "test2_libmysqld_CLIENT"); if (!mysql_real_connect(db, NULL, "root", "shenou", dbname, 0, NULL, 0)) die(db, "mysql_real_connect failed: %s", mysql_error(db)); return db;}voiddb_disconnect(MYSQL *db){ mysql_close(db);}voiddb_do_query(MYSQL *db, const char *query){ if (mysql_query(db, query) != 0) goto err; if (mysql_field_count(db) > 0) { MYSQL_RES *res; MYSQL_ROW row, end_row; int num_fields; if (!(res = mysql_store_result(db))) goto err; num_fields = mysql_num_fields(res); while ((row = mysql_fetch_row(res))) { (void)fputs(">> ", stdout); for (end_row = row + num_fields; row < end_row; ++row) (void)printf("%s\t", row ? (char*)*row : "NULL"); (void)fputc('\n', stdout); } (void)fputc('\n', stdout); mysql_free_result(res); } else (void)printf("Affected rows: %lld\n", mysql_affected_rows(db)); return;err: die(db, "db_do_query failed: %s [%s]", mysql_error(db), query);}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -