MySQL C API 访问 MySQL 示例
代码:

/* Simple C program that connects to MySQL Database server */
#include <mysql.h>
#include <stdio.h>
main() {
char *begin="\n+--------------BEGIN---------------+\n\n";
printf(begin);
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
char *server = "localhost";
char *user = "your mysql user";
char *password = "your password";
char *database = "your database";
conn = mysql_init(NULL); /* Connect to database */
/*
* CLIENT_MULTI_RESULTS
* 通知服务器,客户端能够处理来自多语句执行或存储程序的多个结果集。
* 如果设置了CLIENT_MULTI_STATEMENTS,将自动设置它。
*/
if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, CLIENT_MULTI_RESULTS)) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
char *tell="SQL Table Query...\n";
printf(tell);
// SQL 普通表查询
char *sql="select password from Users whereUserName='client1@192.168.1.122'";
if (mysql_query(conn, sql)) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
res = mysql_use_result(conn);
printf("SqlCommand:%s",sql);
printf("\n");
while ((row = mysql_fetch_row(res)) != NULL) {
printf("PassWord:%s \n\n", row[0]);
}
mysql_free_result(res);
char *tell2="SQL Store Query More...\n";
printf(tell2);
// SQL 存储过程查询
char *sql1="call P_GetCurrentCostPriceByUserName('client1@192.168.1.122')";
if (mysql_query(conn, sql1)) {
fprintf(stderr, "%s\n\n", mysql_error(conn));
exit(1);
}
/*
* 存储过程默认返回的是多个结果集,
* 所以要用mysql_next_result取出并检查
* 下一个的结果集。否则在存储过程下的
* 其它查询语句都会出现 “Commands out of sync;
* you can't run this command now”错误!
*/
do {
if ((res = mysql_use_result(conn))) {
printf("SqlCommand:%s",sql1);
printf("\n");
while ((row = mysql_fetch_row(res)) != NULL) {
printf("UserName:%s \n", row[0]);
printf("Balance:%s \n",row[1]);
printf("Price:%s \n\n",row[2]);
}
}
}while (!mysql_next_result(conn));
mysql_free_result(res);
char *tell3="SQL View Query More...\n";
printf(tell3);
// SQL 视图查询
char *sql2="select CameraID,URL,RtspName,PW,PTZ,PTZServer from V_UserEquipment whereLoginName='client1@192.168.1.122'";
if (mysql_query(conn, sql2)) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
res = mysql_use_result(conn);
printf("SqlCommand:%s",sql2);
printf("\n");
while ((row = mysql_fetch_row(res)) != NULL) {
printf("CameraID:%s \n", row[0]);
printf("URL:%s\n",row[1]);
printf("RtspName:%s \n",row[2]);
printf("PW:%s \n", row[3]);
printf("PTZ:%s \n",row[4]);
printf("PTZServer:%s \n\n",row[5]);
}
mysql_free_result(res);
mysql_close(conn);
char *end="+--------------END----------------+\n";
printf(end);
}

编译:
gcc -o sqla $(mysql_config --cflags) sqla.c $(mysql_config --libs)
运行结果:

+--------------BEGIN---------------+
SQL Table Query...
SqlCommand:select password from Users where UserName='client1@192.168.1.122'
PassWord:client1
SQL Store Query More...
SqlCommand:call P_GetCurrentCostPriceByUserName('client1@192.168.1.122')
UserName:client1@192.168.1.122
Balance:30000
Price:0.05
SQL View Query More...
SqlCommand:select CameraID,URL,RtspName,PW,PTZ,PTZServer from V_UserEquipment where LoginName='client1@192.168.1.122'
CameraID:051010049@192.168.1.122_0
[url=rtsp://192.168.1.93/1.mp4]URL:rtsp://192.168.1.93/1.mp4[/url]
RtspName:admin
PW:admin
PTZ:1
PTZServer:ptzserver1@192.168.1.122
+--------------END----------------+

MySQL C API 访问 MySQL 示例的更多相关文章
- Linux下eclipse及mysql安装,c++访问mysql数据库
这两天在学习linux下用c++访问mysql,碰到一堆问题,记录一下. 1.mysql安装: 公司的电脑是64位的,安装的是64为的RHEL4,安装如下三个包: MySQL-client-5.1.4 ...
- mysql C API的使用
<MySQL++简介>介绍了如何使用C++来访问mysql,本文记录下使用C API访问mysql,mysql++就是对本文介绍的C-API的封装. 常用函数(名字就能告诉我们用法): M ...
- PHP16 PHP访问MySQL
学习要点 PHP访问MySQL配置 PHP访问MySQL函数介绍 足球赛程信息管理 PHP访问MySQL配置 PHP.ini配置文件确认以下配置已经打开 extension=php_mysql.dll ...
- Postman如何通过xmysql工具的Restful API 接口访问MySQL
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 导语 有时候用 Postman 接口测试需要获取MySQL的查询结果做接口输出的校验,这里介绍下 Postman 通过 R ...
- MySQL C API概述
以下列表总结了C API中可用的功能.有关更多详细信息,请参见 第27.8.7节“C API函数描述”中的说明. my_init():在线程安全程序中初始化全局变量和线程处理程序 mysql_affe ...
- C Mysql API连接Mysql
最近都在查看MYsql C API文档,也遇到了很多问题,下面来简单的做一个总结. mysql多线程问题 mysql多线程处理不好,经常会发生coredump,见使用Mysql出core一文. 单线程 ...
- MySql接口API函数综述
C API函数概述 函数 描述 mysql_affected_rows() 返回上次UPDATE.DELETE或INSERT查询更改/删除/插入的行数. mysql_autocommit() 切换 a ...
- Linux下C++访问MySQL数据库
由于想要开始了解并学习用LAMP进行web开发,所以昨晚我在Fedora上安装了MySQL,学习了MySQL的几个常用命令.想着在学习进行web开发(PHP访问数据库)之前,先用我熟悉的C++连接数据 ...
- 开源一个好用的nodejs访问mysql类库
一.背景问题 自nodejs诞生以来出现了一大批的web框架如express koa2 egg等等,前端可以不再依赖后端可以自己控制服务端的逻辑.原来的后端开发同学的阵地前端如今同样也写的风生水起,撸 ...
随机推荐
- vue中使用js动画与velocity.js
一:vue中使用js动画 根据上一篇安装animate.css之后 vue中有动画的钩子函数,@before-enter是内容由无到有的时候自动监听触发的函数,函数会接收到参数el,这样可以动态设置样 ...
- select函数用法详解
1. select函数 select的作用: 轮询的方式,从多个文件描述符中获取状态变化后的情况. 头文件 #include <sys/time.h> //for struct timev ...
- C# List集合基础操作
这里介绍一下C# list的基础操作: 去重.差集.并集.交集 下面,我们看看例子.我们创建了一个User实体,包含两个list,User实体如果Id相等,则相等. users1是id 1到4的集合, ...
- [日常] Go语言圣经-匿名函数习题
Go语言圣经-匿名函数1.拥有函数名的函数只能在包级语法块中被声明,通过函数字面量(function literal),我们可绕过这一限制,在任何表达式中表示一个函数值2.通过这种方式定义的函数可以访 ...
- 【Linux】CentOS安装solr 4.10.3
Solr是什么? Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器.Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置.可扩展,并对索 ...
- 撩课-Web大前端每天5道面试题-Day29
1.https协议的优点? 使用HTTPS协议可认证用户和服务器, 确保数据发送到正确的客户机和服务器: HTTPS协议是由SSL+HTTP协议构建的可进行加密传输. 身份认证的网络协议,要比http ...
- 不要62(hdu2089)
不要62 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submissi ...
- Linux 安装mysql,mariadb,mysql主从同步
myariadb安装 centos7 mariadb的学习 在企业里面,多半不会使用阿里云的mariadb版本,因为版本太低,安全性太低,公司会配置myariadb官方的yum仓库 1.手动创建mar ...
- MySQL入门详解(二)---mysql事务、锁、以及优化
MySQL 事务主要用于处理操作量大,复杂度高的数据.比如说,在一个商城系统中,用户执行购买操作,那么用户订单中应该加一条,库存要减一条,如果这两步由于意外只进行了其中一步那么就会发生很大的问题.而事 ...
- kotlin-2(IdeaIU-2018.2汉化破解)
1.下载文件包: 链接:https://pan.baidu.com/s/1AaAqkJ5E88k69dhcDiC0tA 提取码:b5uk 2.点击ideaIU-2018.2安装软件,安装完成后,不要点 ...