日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

c语言连接mysql(入门)_MySQL入门之C语言操作MySQL

發(fā)布時間:2023/12/10 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言连接mysql(入门)_MySQL入门之C语言操作MySQL 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

基本概念

C APIs包含在mysqlclient庫文件當中,與MySQL的源代碼一塊發(fā)行,用于連接到數(shù)據(jù)庫和執(zhí)行數(shù)據(jù)庫查詢。#include

#include

#include

#include

#include

int main()

{

int ret = 0;

MYSQL mysql;

MYSQL *con = NULL;

con = mysql_init(&mysql);

if (con == NULL)

{

ret = mysql_errno(&mysql);

printf("func mysql_init() err :%d\n", ret);

return ret;

}

//連接mysql服務(wù)器

//MYSQL *mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd,

//const char *db, unsigned int port, const char *unix_socket, unsigned long client_flag) ;

con = mysql_real_connect(&mysql, "localhost", "root", "123456", "mydb2", 0, NULL, 0 );

if (con == NULL)

{

ret = mysql_errno(&mysql);

printf("func mysql_real_connect() err :%d\n", ret);

return ret;

}

else

{

printf("func mysql_real_connect() ok\n");

}

mysql_close(&mysql);

return ret;

}

編程步驟

1 通過調(diào)用mysql_library_init(),初始化MYSQL庫

2 通過調(diào)用mysql_init()初始化連接處理程序,并通過調(diào)用mysql_real_connect()連接到服務(wù)器

3 發(fā)出SQL語句并處理其結(jié)果

4 通過調(diào)用mysql_close(),關(guān)閉與MYSQL服務(wù)器的連接

5 通過調(diào)用mysql_library_end(),結(jié)束MYSQL庫的使用

編譯需要注意的問題 問題1:

[mysql01@localhost dm01]$ gcc -o dm11_hello dm11_hello.c -I/usr/include/ -L/usr/lib64/mysql/ -lmysqlclient

/usr/lib64/mysql//libmysqlclient.a(net_serv.cc.o):(.data.DW.ref.__gxx_personality_v0[DW.ref.__gxx_personality_v0]+0x0): undefined reference to __gxx_personality_v0'

/usr/lib64/mysql//libmysqlclient.a(password.c.o): In functionscramble_323’:

需要用到c++的動態(tài)庫,在編譯選項中添加-lstdc++選項

問題2

/usr/lib64/mysql//libmysqlclient.a(dso_dlfcn.o): In function dlfcn_globallookup':

dso_dlfcn.c:(.text+0x31): undefined reference todlopen’

dso_dlfcn.c:(.text+0x44): undefined reference to dlsym'

dso_dlfcn.c:(.text+0x4f): undefined reference todlclose’

/usr/lib64/mysql//libmysqlclient.a(dso_dlfcn.o): In function dlfcn_pathbyaddr':

dso_dlfcn.c:(.text+0xa0): undefined reference todladdr’

dso_dlfcn.c:(.text+0x101): undefined reference to dlerror'

/usr/lib64/mysql//libmysqlclient.a(dso_dlfcn.o): In functiondlfcn_bind_func’:

dso_dlfcn.c:(.text+0x464): undefined reference to `dlsym’

回調(diào)函數(shù)的正反向調(diào)用,需要使用到dl函數(shù)庫,在編譯選項中添加-ldl選項

問題3

thread_mutex_trylock’

/usr/lib64/mysql//libmysqlclient.a(my_thr_init.c.o): In function my_thread_global_end':

/pb2/build/sb_0-12734909-1406113305.48/rpm/BUILD/mysqlcom-pro-5.6.20/mysqlcom-pro-5.6.20/mysys/my_thr_init.c:214: undefined reference topthread_key_delete’

/pb2/build/sb_0-12734909-1406113305.48/rpm/BUILD/mysqlcom-pro-5.6.20/mysqlcom-pro-5.6.20/mysys/my_thr_init.c:217: undefined reference to pthread_mutexattr_destroy'

/pb2/build/sb_0-12734909-1406113305.48/rpm/BUILD/mysqlcom-pro-5.6.20/mysqlcom-pro-5.6.20/mysys/my_thr_init.c:220: undefined reference topthread_mutexattr_destroy’

MySQL的動態(tài)庫用到多線程,所以編譯選項中添加-lpthread選項

4.問題4

[mysql01@localhost dm01]$ gcc -o dm11_hello dm11_hello.c -I/usr/include/ -L/usr/lib64/mysql/ -lmysqlclient -ldl -lstdc++ -lpthread

/usr/lib64/mysql//libmysqlclient.a(my_getsystime.c.o): In function my_getsystime':

/pb2/build/sb_0-12734909-1406113305.48/rpm/BUILD/mysqlcom-pro-5.6.20/mysqlcom-pro-5.6.20/mysys/my_getsystime.c:44: undefined reference toclock_gettime’

collect2: ld 返回 1

[mysql01@localhost dm01]$

缺少運行時動態(tài)庫以及數(shù)學(xué)庫,添加-lm以及-lrt選項

完整的gcc編譯命令:

gcc -o hello hello.c -I/usr/include/mysql/ -L/usr/lib/i386-linux-gnu/ -lmysqlclient -lm -ldl -lstdc++ -lpthread -lrt

一般Makefile編寫.PHONY:clean all

CC=gcc

CFLAGS=-Wall -g

LFLAGS=-L/usr/lib/i386-linux-gnu/ -lmysqlclient -ldl -lpthread -lm -lrt -lstdc++

BIN=hello

all:$(BIN)

%.o:%.c

$(CC) $(CFLAGS) -c $< -o $@

hello:hello.o

$(CC) $(CFLAGS) $^ $(LFLAGS) -o $@

clean:

rm -f *.o $(BIN)

以上就是MySQL入門之C語言操作MySQL的內(nèi)容,更多相關(guān)內(nèi)容請關(guān)注PHP中文網(wǎng)(www.gxlcms.com)!

本條技術(shù)文章來源于互聯(lián)網(wǎng),如果無意侵犯您的權(quán)益請點擊此處反饋版權(quán)投訴

本文系統(tǒng)來源:php中文網(wǎng)

總結(jié)

以上是生活随笔為你收集整理的c语言连接mysql(入门)_MySQL入门之C语言操作MySQL的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。