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 ...
随机推荐
- Ruby学习笔记
#!/usr/bin/ruby puts "Hello, Ruby, what is your name?" $name = STDIN.gets puts "Hi, I ...
- mongo
最近一直在用mongodb,有时候会需要用到统计,在网上查了一些资料,最适合用的就是用aggregate,以下介绍一下自己运用的心得.. 别人写过的我就不过多描述了,大家一搜能搜索到N多一样的,我写一 ...
- easyui 之ComboTree 用法Demo
实现效果如下: HTML部分: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="ser ...
- 初学者SQL语句介绍
初学者SQL语句介绍 1.用 Select 子句检索记录 Select 子句是每一个检索数据的查询核心.它告诉数据库引擎返回什么字段. Select 子句的常见形式是: S ...
- iOS开发中的数据安全隐患和解决方案
移动互联网的兴起,每天都会涌现大量的app产品,无论公司开发还是个人开发,大家都在追求更快的抢占市场,但是确忽略了打磨产品,也忽略了移动开发中的数据安全隐患,如果我们用Charles工具,很容易截获到 ...
- 关于servlet的filter
Servlet过滤器 2009-12-08 23:12:44| 分类: Java|举报|字号 订阅 一.什么是Servlet过滤器 过滤器是在数据交互之间过滤数据的中间组件,独立于任何平台或 ...
- easyui js基础
$(document).ready( function(){ initload(); });function initConfig(){ //数据列表 yzfymx=$("#tjdj&quo ...
- android基础(三)ContentProvider
ContentProvider主要用于在不同的应用程序之间实现数据共享,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访问数据的安全性,目前内容提供其实android实现跨 ...
- 如何解决xx列不在表中
在连接数据库的程序中常会出现xx列不在表中的问题?那么应该怎么解决呢? 产生此问题的原因有三种: 1.数据表没这个字段2.sql查询没将这个字段查出来3.字段名写错了 还有重要的是一定要检查你的数据库 ...
- Windows和Unix下的编码问题
今天测试shell脚本时,执行报错: ./report.sh: /tmp/tmp.E8ekx6r5Qq/report.sh: /bin/bash^M: bad interpreter: No such ...