示例代码:
- #include <stdio.h>
- #include <stdlib.h>
- #include <mysql.h>
-
- int main (int argc, char *argv[])
- {
- int res;
- MYSQL_RES *result;
- int numFields = 0;
- int numRows = 0;
- MYSQL_FIELD * field;
- MYSQL_ROW row;
- int i = 0;
-
-
-
- MYSQL *conn;
-
- // 步骤1: 初始化连接句柄
- conn = mysql_init(NULL);
-
- if (conn == NULL) { // 如果返回NULl说明初始化失败
- printf("mysql_init failed!\n");
- return EXIT_FAILURE;
- }
-
- // 步骤2:实际进行连接
- // 参数分别为,conn连接句柄,host是MySQL所在主机或地址,user用户名,password密码,database_name数据库名,后面的都是默认
- conn = mysql_real_connect(conn, "127.0.0.1", "root", "c123456", "", 3357, NULL, 0);
-
- if (conn) { // 连接成功
- printf("Connection success!\n");
- } else {
- printf("Connection failed!\n");
- }
-
- mysql_query(conn,"use ceshi"); // 切换数据库
- mysql_query(conn,"create table t1 (id int primary key,name varchar(200),age int)"); // 创建 t1 表
- mysql_query(conn,"insert into t1(id,name,age) values(1,'zhangsan',10)"); // 写入数据
- mysql_query(conn,"insert into t1(id,name,age) values(2,'lisi',20)"); // 写入数据
- mysql_query(conn,"insert into t1(id,name,age) values(3,'wangwu',30)"); // 写入数据
- mysql_query(conn,"commit"); // 写入数据
-
-
- res=mysql_query(conn,"select * from t1");
-
- result=mysql_store_result(conn);
- numFields = mysql_num_fields(result);
- numRows = mysql_num_rows(result);
-
- while(field = mysql_fetch_field(result))//返回结果集中的列信息(字段)
- printf("%s\t", field->name);
- printf("\n");
- if(result)
- {
- while(row = mysql_fetch_row(result))//返回结果集中行的记录
- {
- for(i = 0; i < numFields; i++)
- {
- printf("%s\t", row[i]);
- }
- printf("\n");
- }
- }
- mysql_free_result(result);
- // printf("%s",result);
- // 步骤3: 退出前关闭连接
- mysql_close(conn);
-
- return 0;
- }
-
-
编译:gcc my.c -o main $(mysql_config --libs --cflags) -g
执行结果
- [root@mysql ~]# ./main
- Connection success!
- id name age
- 1 zhangsan 10
- 2 lisi 20
- 3 wangwu 30
-
对于show databases 之类命令显示
- #include <stdio.h>
- #include <stdlib.h>
- #include <mysql.h>
-
- int main (int argc, char *argv[])
- {
- int res;
- MYSQL_RES *result;
- int numFields = 0;
- int numRows = 0;
- MYSQL_FIELD * field;
- MYSQL_ROW row;
- int i = 0;
-
-
-
- MYSQL *conn;
-
- // 步骤1: 初始化连接句柄
- conn = mysql_init(NULL);
-
- if (conn == NULL) { // 如果返回NULl说明初始化失败
- printf("mysql_init failed!\n");
- return EXIT_FAILURE;
- }
-
- // 步骤2:实际进行连接
- // 参数分别为,conn连接句柄,host是MySQL所在主机或地址,user用户名,password密码,database_name数据库名,后面的都是默认
- conn = mysql_real_connect(conn, "127.0.0.1", "root", "c123456", "", 3357, NULL, 0);
-
- if (conn) { // 连接成功
- printf("Connection success!\n");
- } else {
- printf("Connection failed!\n");
- }
-
- mysql_query(conn,"use ceshi"); // 切换数据库
- mysql_query(conn,"create table t1 (id int primary key,name varchar(200),age int)"); // 创建 t1 表
- mysql_query(conn,"insert into t1(id,name,age) values(1,'zhangsan',10)"); // 写入数据
- mysql_query(conn,"insert into t1(id,name,age) values(2,'lisi',20)"); // 写入数据
- mysql_query(conn,"insert into t1(id,name,age) values(3,'wangwu',30)"); // 写入数据
- mysql_query(conn,"commit"); // 写入数据
-
-
- res=mysql_query(conn,"show databases");
-
- result=mysql_store_result(conn);
-
-
- while(row = mysql_fetch_row(result))//返回结果集中行的记录
- printf("%s\t", row[0]);
- printf("\n");
-
- mysql_free_result(result);
- // printf("%s",result);
- // 步骤3: 退出前关闭连接
- mysql_close(conn);
-
- return 0;
- }
-