C语言访问MySQL数据库简单实例


不像Oracle, MYSQL数据库并不支持嵌入式SQL语言。

但是提供了功能强大的C,C++支持API,其中c语言的API在参考手册的第25部分,独立于这个3000多页的参考手册之外的另外部分的

MySQL++是用于C++的MySQL API。Warren Young负责该项目。要想了解更多信息,请访问http://www.mysql.com/products/mysql++/。

当然mysql似乎最为广泛的应用是个php脚本语言一起,apache,一起用做网站的后台数据库服务程序,这个做过好多。

同时我是一个C程序员,碰到什么总是想用c试试,这几天忙着准备军转考试,

刚好有点闲暇时间,顺便把c和mysql数据库的访问再复习一遍。

运行环境是SunOS x4100 5.10 Generic_118855-33 i86pc i386 i86pc;编译器是gcc,外加Llibmysqlclient库。

  1. #include <stdio.h>  
  2. #include <string.h>  
  3. #include <mysql.h>  
  4. #include <stdlib.h>  
  5. main()  
  6. {  
  7.         MYSQL *conn;  
  8.         MYSQL_RES *res;  
  9.         MYSQL_ROW row;  
  10.         char *server = "mysql";  
  11.         char *user = "huzia";  
  12.         char *password = "cjrIwo"; /*  */  
  13.         char *database = "huzia";  
  14.         conn = mysql_init(NULL);  
  15.   
  16.         /* Connect to database */  
  17.         if (!mysql_real_connect(conn, server,  
  18.         user, password, database, 0, NULL, 0)) {  
  19.         fprintf(stderr, "%s\n", mysql_error(conn));  
  20.                 exit(1);  
  21.         }  
  22.   
  23.         /* send SQL query */  
  24.         if (mysql_query(conn, "show tables")) {  
  25.                 fprintf(stderr, "%s\n", mysql_error(conn));  
  26.                 exit(1);  
  27.         }  
  28.   
  29.         res = mysql_use_result(conn);  
  30.         /* output table name */  
  31.         printf("MySQL Tables in mysql database:\n");  
  32.         while ((row = mysql_fetch_row(res)) != NULL)  
  33.         printf("%s \n", row[0]);  
  34.   
  35.         /* close connection */  
  36.         mysql_free_result(res);  
  37.         mysql_close(conn);  
  38. }  

运行成功。

相关内容