MYSQL C API : struct MYSQL_STMT 结构的组合使用
- #include <iostream>
- #include <string>
- #include <string.h>
- #include <assert.h>
- #include <mysql.h>
- static void do_stmt_sql(MYSQL *ms_conn);
- int main()
- {
- // 初始化MYSQL 实例
- MYSQL *ms_conn = mysql_init(NULL);
- if (ms_conn == NULL)
- {
- std::cout << "mysql init failed." << std::endl;
- return ;
- }
- std::cout << "mysql init successful." << std::endl;
- // 连接到MYSQL 服务器
- MYSQL *ms_ret = mysql_real_connect(ms_conn, "localhost", "suyh",
- "suyunhong", "suyh_db", , NULL, );
- if (ms_ret == NULL)
- {
- std::cout << "mysql connect failed. "
- << mysql_error(ms_conn) << std::endl;
- mysql_close(ms_conn), ms_conn = NULL;
- return ;
- }
- std::cout << "mysql connect successful." << std::endl;
- do_stmt_sql(ms_conn);
- // 释放资源
- mysql_close(ms_conn), ms_conn = NULL;
- return ;
- }
- static void do_stmt_sql(MYSQL *ms_conn)
- {
- assert(ms_conn != NULL);
- if (ms_conn == NULL)
- return ;
- MYSQL_STMT *stmt = NULL;
- stmt = mysql_stmt_init(ms_conn);
- if (stmt == NULL)
- {
- std::cout << "stmt is NULL. mysql_stmt_init failed. "
- << mysql_error(ms_conn) << std::endl;
- return ;
- }
- std::cout << "MYSQL_STMT init successful." << std::endl;
- const char str_sql[] = "INSERT INTO tb_bin_data(bin_data) VALUES(?)";
- int res = ;
- res = mysql_stmt_prepare(stmt, str_sql, sizeof(str_sql) - );
- if (res != )
- {
- std::cout << "mysql_stmt_prepare INSERT failed."
- << mysql_stmt_error(stmt) << std::endl;
- return ;
- }
- // 待存到MYSQL 的二进制数据
- char bin_data[] = {, , , , , , , , , };
- MYSQL_BIND bind[];
- memset(bind, , sizeof(bind));
- bind[].buffer_type = MYSQL_TYPE_BLOB;
- bind[].is_null = NULL;
- bind[].buffer = bin_data;
- bind[].buffer_length = sizeof(bin_data);
- res = mysql_stmt_bind_param(stmt, bind);
- if (res != )
- {
- std::cout << "mysql_stmt_bind_param failed. "
- << mysql_stmt_error(stmt) << std::endl;
- mysql_stmt_close(stmt), stmt = NULL;
- return ;
- }
- std::cout << "mysql_stmt_bind_param successful." << std::endl;
- // res = mysql_stmt_send_long_data(stmt, 0, escape_bin, strlen(escape_bin));
- // std::cout << "mysql_stmt_send_long_data result is " << res << std::endl;
- res = mysql_stmt_execute(stmt);
- std::cout << "mysql_stmt_execute() func result is " << res << std::endl;
- mysql_stmt_close(stmt), stmt = NULL;
- }
MYSQL C API : struct MYSQL_STMT 结构的组合使用的更多相关文章
- The MySQL C API 编程实例
在网上找了一些MYSQL C API编程的文章,看了后认为还是写的不够充分,依据自己经验写了这篇<The MySQL C API 编程实例>,希望对须要调用到MYSQL的C的API的朋友有 ...
- struct termios结构体【转】
本文转载自:http://blog.csdn.net/vevenlcf/article/details/51096122 一.数据成员 termios 函数族提供了一个常规的终端接口,用于控制非同步通 ...
- mysql C API 字符串玩转备份调优
- MySQL C API概述
以下列表总结了C API中可用的功能.有关更多详细信息,请参见 第27.8.7节“C API函数描述”中的说明. my_init():在线程安全程序中初始化全局变量和线程处理程序 mysql_affe ...
- MySQL 性能优化--优化数据库结构之优化数据大小
MySQL性能优化--优化数据库结构之优化数据大小 By:授客 QQ:1033553122 尽量减少表占用的磁盘空间.通常,执行查询期间处理表数据时,小表占用更少的内存. 表列 l 尽可能使 ...
- Golang面向对象编程-struct(结构体)
Golang面向对象编程-struct(结构体) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是面向对象编程 面向对象编程(Object Oriented Program ...
- Linux串口—struct termios结构体【转】
转自:https://blog.csdn.net/yemingzhu163/article/details/5897156 一.数据成员 termios 函数族提供了一个常规的终端接口,用于控制非同步 ...
- struct termios结构体详解
一.数据成员 termios 函数族提供了一个常规的终端接口,用于控制非同步通信端口. 这个结构包含了至少下列成员:tcflag_t c_iflag; /* 输入模式 */tcflag_t ...
- MySql接口API函数综述
C API函数概述 函数 描述 mysql_affected_rows() 返回上次UPDATE.DELETE或INSERT查询更改/删除/插入的行数. mysql_autocommit() 切换 a ...
随机推荐
- C#/ASP.NET MVC微信公众号接口开发之从零开发(一) 接入微信公众平台
微信公众平台接入:其实很简单,把两个参数(地址和token)填入微信公众平台后台,暂时选择明文模式 ,其中token自己定义.微信服务器会根据后台填写的地址访问,并且带上对于的参数 如 url+&am ...
- 为什么上传文件的表单里要加个属性enctype
为什么上传文件的表单里要加个属性enctype 上传文件的表单中<form>要加属性enctype="multipart/form-data",很多人只是死记硬背知道上 ...
- Spring Bean配置
Spring 是什么 •Spring 为简化企业级应用开发而生. 使用 Spring 可以使简单的 JavaBean 实现以前只有 EJB 才能实现的功能. •Spring 是一个 IOC(DI) 和 ...
- 安装64位mysql5.626
计算机--右击属性--左上高级系统变量---环境变量 path 添加 mysql 的bin目录 ;D:\mysqlwinx64\bin1 //mysql 5.6.26安装前先解压到d盘根目录 cd D ...
- WPF之MVVM模式讲解
WPF技术的主要特点是数据驱动UI,所以在使用WPF技术开发的过程中是以数据为核心的,WPF提供了数据绑定机制,当数据发生变化时,WPF会自动发出通知去更新UI. 恰当的模式可以让我们轻松达到“高内聚 ...
- python with语句
作用:处理异常或进行资源清理等工作,让代码更加简练. 基本格式:with statement as statement: do somthing....... statement会有一个返回对象,这 ...
- json全套
JS文件 function pager1_InitData() { //基础配置 $("#pager1").myPagination({ currPage: 1, pageCoun ...
- 关于PCA的几何表示——MATLAB实现
关于PCA的一道练习题.这个折腾了好久...终于做出来像样的图,开始的时候忘记对原始数据标准化,怎么也不对.经过标准化之后,做的图看着还可以,有错误请指出! MATLAB代码PCA.m: clear ...
- Polymer.js
Polymer 1.0 教程 安装 bower install --save Polymer/polymer
- mysql取代rand()的高效率随机读取方法
SELECT * FROM `table` AS t1 JOIN (SELECT ROUND(RAND() * (SELECT MAX(id) FROM `table`)) AS id) AS t2 ...