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

基本概念

C APIs包含在mysqlclient库文件当中,与MySQL的源代码一块发行,用于连接到数据库和执行数据库查询。#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服务器

//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 通过调用mysql_library_init(),初始化MYSQL库

2 通过调用mysql_init()初始化连接处理程序,并通过调用mysql_real_connect()连接到服务器

3 发出SQL语句并处理其结果

4 通过调用mysql_close(),关闭与MYSQL服务器的连接

5 通过调用mysql_library_end(),结束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++的动态库,在编译选项中添加-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’

回调函数的正反向调用,需要使用到dl函数库,在编译选项中添加-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的动态库用到多线程,所以编译选项中添加-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]$

缺少运行时动态库以及数学库,添加-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的内容,更多相关内容请关注PHP中文网(www.gxlcms.com)!

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261282.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android UI 色板

感谢LZ 点击链接&#xff1a;android ui 色板 地址 转载于:https://www.cnblogs.com/sunjialiang/archive/2011/08/26/2154565.html

Spring中IoC的入门实例[转]

Spring的模块化是很强的&#xff0c;各个功能模块都是独立的&#xff0c;我们可以选择的使用。这一章先从Spring的IoC开始。所谓IoC就是一个用XML来定义生成对象的模式&#xff0c;我们看看如果来使用的。  数据模型  1、如下图所示有三个类&#xff0c;Human&#xff08;人…

方向gravity_逆转重力方向,更加自由翱翔——GNZ48 - 《gravity》

第二期给大家带来的这首歌出自GNZ48 第二套原创公演《双面偶像》&#xff0c;也是GNZ48 team g 在这套公演中的队歌&#xff0c;一首气势恢宏的歌曲。开头的小提琴就带入我们进入了一种紧张的情绪&#xff0c;随着第一个鼓点敲下&#xff0c;歌词也渐渐揭开面纱&#xff1a;“泥…

06-BCD计数器设计与应用——小梅哥FPGA设计思想与验证方法视频教程配套文档

芯航线——普利斯队长精心奉献 实验目的&#xff1a;1.掌握BCD码的原理、分类以及优缺点 2.设计一个多位的8421码计数器并进行验证 3.学会基本的错误定位以及修改能力 实验平台&#xff1a;无 实验原理&#xff1a; BCD码&#xff08;Binary-Coded Decimal&#xff09;又…

aix6.1 nfs

1.首先需要启动aix 上的nfs 服务 startsrc -g nfs 或者 smit nfs --> Network File System (NFS)  -->  Configure NFS on This System  -->  Start NFS 停止nfs stopsrc -g nfs 2. 在aix系统上&#xff0c;创建一个共享目录&#xff0c;与普通目录无区别 例…

Flash基本工具练习

练习一、按钮 练习二、卡通脸 练习三、图标 转载于:https://www.cnblogs.com/staceydesign/p/3313229.html

韦根w34是多少位_韦根接口读卡器说明书

距离读卡器颜色为:银白色 QZ-8600B 与 QZ-8600 蓝牙远距离读卡器颜色为:可乐红、 蓝色、橙色、黄色 读卡最大距离:1-20 米 标签协议:CDMA 接口类型:韦根 26/......支持 RS485 接口和韦根接口读卡器的接入,RS485 接口采用双接口设计,支 持环路断点故障检测和冗余功能;韦根格式支…

GMT与UTC简介

一、简介 许多人都知道两地时间表简称为GMT或UTC&#xff0c;而世界时区表则通称为World Time &#xff0c;那么GMT与UTC的实质原意又是为何&#xff1f;世界时区又是怎么区分的&#xff1f;面盘上密密麻麻的英文单字代表着什么意义与作用呢&#xff1f;这些都是新手在接触两地…

键盘事件的响应

在应用的程序的控制方面&#xff0c;更多的使用的是屏幕上的控件&#xff0c;但是有的时候也需要直接对键盘事件来进行响应。键盘是Android中主要的输入设备&#xff0c;对按键的响应的处理是响应之间在程序中使用键盘的核心内容。本例需要实现的内容是通过键盘来控制屏幕上的一…

mysql_query 资源标识符_借助PHP的mysql_query()函数来创建MySQL数据库的教程

以mysql_query()函数作为教程的基础前提&#xff0c;我们先来看一下mysql_query()的用法&#xff1a;mysql_query()函数PHP MySQL 函数库中&#xff0c;mysql_query() 函数用于向 MySQL 发送并执行 SQL 语句。对于没有数据返回结果集的 SQL &#xff0c;如 UPDATE、DELETE 等在…

ios PNG Crush error (PNG图片错误)

我是这么解决的&#xff1a; I had the same problem. How to fix : Open up image with Preview -> File > Export > Format change to PNG and you are done 其他被采纳的方法&#xff1a; 12 Answers activeoldestvotes up vote41down voteaccepted Did you check …

设计模式之十(外观模式)

前言 外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一系统更加容易使用. 结构图 SubSystem Class 子系统类集合 实现子系统的功能&#xff0c;处理Facade对象指派的任务&#xff0c;注意子类中没有Facade的任何信息&#xff0c;即…

sunday java_Sunday算法:最快的字符串匹配算法

之前被KMP的next数组搞的头昏脑胀说不上也是比较烦人的&#xff0c;今天看到还有这么有趣而且高效的算法(比KMP还快)&#xff0c;看来有必要做一点笔记了Sunday算法是Daniel M.Sunday于1990年提出的字符串模式匹配算法&#xff0c;其简单、快速的特点非常好&#xff01;思路其核…

Apache不记录制定文件类型日志

vim /usr/local/apache2/conf/extra/httpd-vhosts.conf在CustomLog 行上加入如下代码&#xff1a;SetEnvIf Request_URI ".*\.gif$" p_w_picpath-requestSetEnvIf Request_URI ".*\.jpg$" p_w_picpath-requestSetEnvIf Request_URI ".*\.png$" p…

小波分析实验: 实验1 连续小波变换

实验目的&#xff1a; 在理解连续小波变换原理的基础上&#xff0c;通过编程实现对一维信号进行连续小波变换&#xff0c;&#xff08;实验中采用的是墨西哥帽小波&#xff09;&#xff0c;从而对连续小波变换增加了理性和感性的认识&#xff0c;并能提高编程能力&#xff0c;为…

句子中单词首字母大写转换

//函数将句子中的每个单词的首字母改为大写 string first_letter(string& sentence) {//定义string 指针&#xff0c;并指向string 首地址string::iterator itsentence.begin ();//定义 关键 标志&#xff0c;反映检测到空格字符bool space_flagtrue;//string 指针未到字符…

java axmlprinter_安卓xml配置文件解析工具-AXMLPrinter2.jar(androidmanifest.xml 反编译)下载官方最新版-西西软件下载...

AXMLPrinter2.jar apk分析APK文件&#xff0c;取得APK文件中的 包名、版本号及图标&#xff0c;很强大的工具&#xff0c;再一次感受到了批处理的牛逼。可以将android安卓编译过的二进制XML文件(binary xml file)反编译明文输出保存。是apk反编译修改的必备工具之一。例如需要查…

UML用例图说明

转自&#xff1a;http://www.360doc.com/content/10/1206/23/3123_75672033.shtml 前些时间参加了潘加宇老师的技术讲座&#xff0c;UML建模技术受益匪浅。我也把平时的一些积累和上次的收获总结在这篇文章中&#xff0c;主要讲解用例图相关的知识。 用例图是软件需求分析…

MySQL 按指定字段自定义列表排序

问题描述大家都知道, MySQL 中按某字段升序排列的 SQL 为 (以 id 为例, 下同):SELECT * FROM MyTable WHERE id IN (1, 7, 3, 5) ORDER BY id ASC降序排列的 SQL 为:SELECT * FROM MyTable WHERE id IN (1, 7, 3, 5) ORDER BY id DESC有时以上排序并不能满足我们的需求. 例如, …

WordPress get_allowed_mime_types函数(wp-includes/functions.php)存在跨站脚本漏洞

漏洞版本: WordPress 3.6 漏洞描述: CVE ID:CVE-2013-5738WordPress是一种使用PHP语言开发的博客平台&#xff0c;用户可以在支持PHP和MySQL数据库的服务器上架设自己的网志WordPress get_allowed_mime_types函数(wp-includes/functions.php)存在安全漏洞&#xff0c;由于不正确…