linux下C语言连接mysql数据库

/*

* 需先安装mysqlclient库

* linux下C语言连接mysql的样例 * */

#include #include

#include

void create(MYSQL *conn_ptr) {

int ret;

ret = mysql_query(conn_ptr,\CHAR(5),birthday DATE,primary key(ID)) \

if (ret) {

fprintf(stderr,\ } else {

printf(\ } }

void insert(MYSQL *conn_ptr) {

int ret;

ret = mysql_query(conn_ptr,\values(10000,'lv','1989-02-09')\

if (ret) {

fprintf(stderr,\ } else {

printf(\ } }

void output(MYSQL *conn_ptr) {

//函数返回状态 int ret = 0; //查询结果集

MYSQL_RES *res = NULL;

//1行数据的\类型安全\表示,为计数字节、字符串的数组 MYSQL_ROW row = NULL;

//包含字段的相关信息,如字段名,类型和大小等 MYSQL_FIELD *field;

//向服务器发送执行语句

ret = mysql_query(conn_ptr,\ if (ret) {

//输出错误信息

fprintf(stderr,\ } else {

//客户端处理结果集的2种方式之一:一次性的检索整个结果集 res = mysql_store_result(conn_ptr); if (res) {

//结果集的字段数

int colNum = mysql_num_fields(res); //获取结果集的下一个字段的相关信息

while ( field = mysql_fetch_field(res) ) {

//字段名,如果用AS子句为该字段指定了别名,名称的值也是别名

printf(\ //原始字段名,忽略别名

printf(\

//包含该字段的表名,如果用AS子句为该表指定了别名,名称的值也是别名

printf(\ //包含该字段的原始表名,忽略别名

printf(\ //该字段类型所支持的最大长度 printf(\field: %lu\\n\

//该字段当前数据中存在的最大长度

printf(\real: %lu\\n\

//用于该字段的不同\位标志\。如:不能为NULL,主键、唯一键等等

printf(\ }

//从结果集中获取下一行

while (row = mysql_fetch_row(res)) {

//获取该字段每一列的长度,应避免使用strlen,因为可以存在2进制数据

unsigned long *lengths;

lengths = mysql_fetch_lengths(res); //输出每一个字段的长度及数据 int i = 0;

for (i = 0; i < colNum; i++)

printf(\ printf(\ }

//释放结果集所使用的内存 mysql_free_result(res); } } }

int main(int argc,char *argv[]) {

MYSQL *conn_ptr;

//初始化

conn_ptr = mysql_init(NULL); if (!conn_ptr) {

fprintf(stderr,\ return EXIT_FAILURE; }

//连接到mysql服务器,参数

为:handle,host,user,password,database,port,socket,client_flag conn_ptr =

mysql_real_connect(conn_ptr,\);

if (!conn_ptr) {

fprintf(stderr,\ }

create(conn_ptr);

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4