⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test2_libmysqld.c

📁 C语言调用mysql数据库 环境:linux 解压缩后
💻 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 + -