代码:

/* 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 示例的更多相关文章

  1. Linux下eclipse及mysql安装,c++访问mysql数据库

    这两天在学习linux下用c++访问mysql,碰到一堆问题,记录一下. 1.mysql安装: 公司的电脑是64位的,安装的是64为的RHEL4,安装如下三个包: MySQL-client-5.1.4 ...

  2. mysql C API的使用

    <MySQL++简介>介绍了如何使用C++来访问mysql,本文记录下使用C API访问mysql,mysql++就是对本文介绍的C-API的封装. 常用函数(名字就能告诉我们用法): M ...

  3. PHP16 PHP访问MySQL

    学习要点 PHP访问MySQL配置 PHP访问MySQL函数介绍 足球赛程信息管理 PHP访问MySQL配置 PHP.ini配置文件确认以下配置已经打开 extension=php_mysql.dll ...

  4. Postman如何通过xmysql工具的Restful API 接口访问MySQL

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 导语 有时候用 Postman 接口测试需要获取MySQL的查询结果做接口输出的校验,这里介绍下 Postman 通过 R ...

  5. MySQL C API概述

    以下列表总结了C API中可用的功能.有关更多详细信息,请参见 第27.8.7节“C API函数描述”中的说明. my_init():在线程安全程序中初始化全局变量和线程处理程序 mysql_affe ...

  6. C Mysql API连接Mysql

    最近都在查看MYsql C API文档,也遇到了很多问题,下面来简单的做一个总结. mysql多线程问题 mysql多线程处理不好,经常会发生coredump,见使用Mysql出core一文. 单线程 ...

  7. MySql接口API函数综述

    C API函数概述 函数 描述 mysql_affected_rows() 返回上次UPDATE.DELETE或INSERT查询更改/删除/插入的行数. mysql_autocommit() 切换 a ...

  8. Linux下C++访问MySQL数据库

    由于想要开始了解并学习用LAMP进行web开发,所以昨晚我在Fedora上安装了MySQL,学习了MySQL的几个常用命令.想着在学习进行web开发(PHP访问数据库)之前,先用我熟悉的C++连接数据 ...

  9. 开源一个好用的nodejs访问mysql类库

    一.背景问题 自nodejs诞生以来出现了一大批的web框架如express koa2 egg等等,前端可以不再依赖后端可以自己控制服务端的逻辑.原来的后端开发同学的阵地前端如今同样也写的风生水起,撸 ...

随机推荐

  1. nodejs项目总结

    前几天花了3天时间,搭建.开发了一个包含客户端.cms.server端的项目,也因着以前有php的开发经验,以及sql的设计和应用能力,倒也没遇到什么阻碍.至于项目结构搭建(架构),也是共通的,以模块 ...

  2. Java设计模式学习记录-建造者模式

    前言 今天周末,有小雨,正好也不用出门了,那就在家学习吧,经过了两周的面试,拿到了几个offer,但是都不是自己很想去的那种,要么就是几个人的初创小公司,要么就是开发企业内部系统的这种传统开发,感觉这 ...

  3. 基于vue实现一个简单的MVVM框架(源码分析)

    不知不觉接触前端的时间已经过去半年了,越来越发觉对知识的学习不应该只停留在会用的层面,这在我学jQuery的一段时间后便有这样的体会. 虽然jQuery只是一个JS的代码库,只要会一些JS的基本操作学 ...

  4. [转载] npm 一些操作

    npm i module_name -S = > npm install module_name --save 写入到 dependencies 对象 npm i module_name -D ...

  5. Spring基础(5): 构造函数注入无法处理循环依赖

    public class Person{ public Leader leader; public Person(Leader l){ this.leader= l; } } public class ...

  6. //{{AFX_MSG、//{{AFX_VIRTUAL、//{{AFX_MSG_MAP、//{{AFX_DATA_INIT

    说明:这篇日志我不知道怎么命名好,虽然内容很少,但是讲的关键字很多,如果你有幸打开这篇日志,不妨往下看看 背景:我们使用 VC++6.0 开发MFC应用程序,初学者一定会为那么多行的注释代码感到头痛, ...

  7. SQL Server无法打开物理文件,操作系统错误 5:"5(拒绝访问。)的解决办法

    在新装的系统中使用SQL Server附加以前的数据库的时候可能会遇到“无法打开物理文件,拒绝访问”的错误,如下图: 解决方法为使用windows验证登录,或者更改SQL Server内置账户类型为L ...

  8. Java基本数据类型总结(转载)

    Java基本数据类型总结 基本类型,或者叫做内置类型,是JAVA中不同于类的特殊类型.它们是我们编程中使用最频繁的类型.java是一种强类型语言,第一次申明变量必须说明数据类型,第一次变量赋值称为变量 ...

  9. Android照片墙-多图加载

    http://blog.csdn.net/guolin_blog/article/details/9526203 照片墙这种功能现在应该算是挺常见了,在很多应用中你都可以经常看到照片墙的身影.它的设计 ...

  10. ActiveMQ 概述

    JMS Java Message Service (Java 消息服务), 类似于JDBC的作用. 1.Destination 目的地 2.Provider 生产者 3.Comsumer 消费者 4. ...