Linux下C++/C连接MySQL数据库

  次阅读 来源:互联网(转载协议) 2016-01-27 15:47 我要评论(0)

Linux 下 C++/C 连接 MySQL 数据库(一)

一、连接前准备

原材料:Ubuntu12.04LTS

(已经安装了MySQL5.5或者更高级版本,新立得软件包,gcc/g++或者CodeBlosks编译器)

安装了以上的软件包后,我们可以正常使用MySQL完成数据管理工作,但是很多时候我们需要通过编写程序访问MySQL。此时,在程序中需要加载MySQL驱动头文件,但是默认这些驱动包是没有安装的,因此我们需要在新立得中找到"libmysqld-dev"包并安装。

安装完成之后,在 /usr/include/mysql/ 目录下会有很多相对应的头文件,如mysql.h等。

当写好程序,需要编译时:

1、如果选用的是使用gcc/g++在命令行下完成,则需要加上-lmysqlclient选项。如:

g++ -lmysqlclient mysql_test.cc -o mysqltest

2、如果选用的是CodeBlocks,则需在构建选项中,将连接库设为mysqlclient。

开始编译。

二、头文件及相关函数分析

这篇博客中所列的函数全部包含在头文件下,因此,需要在程序编写开始处,加入一行:

#include <mysql/mysql.h>

1、用CAPI连接MySQL数据库有两个步骤:

1)初始化一个连接句柄

2)建立连接

所用到的函数如下:

MYSQL *mysql_init(MYSQL *connection);// 初始化连接句柄

//成功返回MySQL结构指针,失败返回NULL

MYSQL *mysql_real_connect(MYSQL *connection,

const char *server_host,

const char *sql_user_name,

const char *sql_password,

const char *db_name,

unsigned int port_number,

const char *unix_socket_name,

unsigned int flags);//建立连接

//成功返回MySQL结构指针,失败返回NULL

2、MySQL连接工作完成之后,需要对MySQL的连接进行释放

void mysql_close(MYSQL *connection); //关闭连接

//参数connection被清空,指针变为无效

3、mysql_options用于设置额外选项,并影响连接行为,但是它只能在mysql_init和mysql_real_connect 之间调用

int mysql_options(MYSQL *connection, enum mysql_option option, const char *argument);//设置连接选项

option的值为下列四个值之一:

MYSQL_INIT_COMMAND//连接到MySQL服务器时将执行的命令,再次连接时将自动再次执行。

MYSQL_OPT_CONNECT_TIMEOUT//连接超时前的等待秒数

MYSQL_OPT_COMPRESS//网络连接中使用压缩机制

MYSQL_OPT_PROTOCOL//要使用的协议类型,影视mysql.h中定义的mysql_protocol_type枚举值之一

4、以上的函数是在假设没有错误的情况下运行,如果数据库连接过程中出现了错误,我们就需要以下两个函数来处理错误信息:

unsigned int mysql_errno(MYSQL *connection);//返回错误代码(0表示为出现错误)

char *mysql_error(MYSQL *connection);//返回错误信息,是以NULL作为终结的字符串

5、程序访问数据库不只是与数据库建立连接,更重要的是通过SQL语句的执行查询或改变数据库中数据。执行SQL语句可以通过下列函数实现。

int mysql_query(MYSQL *connection, const char *query);

SQL语句分为两类,返回数据的SQL和不返回数据的SQL(UPDATE、DELETE、INSERT)。

下面我们只介绍不返回数据的SQL

本站部分文章来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 长虹新款智能语音空调,告诉你空调也能玩Siri

    长虹新款智能语音空调,告诉你空调也能玩Siri

  • 品友互动为Digital Travel APAC2018 唯一受邀中国AI企业

    品友互动为Digital Travel APAC2018 唯一受邀中国AI企业

  • 第一批国家重点研发计划公布,旷视科技开启“五年行动”

    第一批国家重点研发计划公布,旷视科技开启“五年行动”

  • 让AI触手可及  Qualcomm携手创通联达推出全新终端侧AI开发套件

    让AI触手可及 Qualcomm携手创通联达推出全新终端侧AI开发套件

网友点评网友点评
阅读推荐阅读推荐

据外媒报道,STEER打造了首款完全自动驾驶停车技术,旨在使常规车辆转变为无人驾驶车辆。STEER的首款技术应用是4级自动驾驶及网络安全停车...

近日,美国软性机器抓手制造商 Soft Robotics 宣布,获得 2000 万美元的融资,本轮投资者包括 Scale Venture Partners,Calibrate Ventures...

据外媒报道,加州车管局发布了《2017自动驾驶脱离报告(California Autonomous Vehicle Disengagement Reports)》,其中谈及了脱离的具体...

用人机语音交互,来解决智能家居适老的问题;通过家庭门禁与安防套件、空气净化套件、可燃气体与有害气体监控套件等相互联动,在不同生活情...