示例代码:
#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;
}