#include <stdio.h>
#include <mysql/mysql.h>
#include <string.h>
int main(void)
{
// declares
MYSQL * connection = NULL;
MYSQL_STMT * stmt = NULL;
MYSQL_BIND bind[3];
MYSQL_BIND inbind;
// preprocess
bzero(bind, sizeof(bind));
bzero(&inbind, sizeof(inbind));
// declare MYSQL * ptr
connection = mysql_init(NULL);
if (NULL == connection)
{
fprintf(stderr, "mysql_init err!");
return -1;
}
// connect
connection = mysql_real_connect(connection, "localhost", "root", "root", "dblinuxcmysqlctr", 0, NULL, 0);
if (NULL == connection)
{
fprintf(stderr, "mysql_real_connect err!");
return -1;
}
/* 1. init */
stmt = mysql_stmt_init(connection);
/* ******************************************************** */
//char * insertsql = "select name from tlinuxcmysqlctr where age = ?;";
// 这里不就可以过滤了,过滤出来没有数据,是为啥呀?
char * insertsql = "select name from tlinuxcmysqlctr where name = ?;";
/* ******************************************************** */
/* 2. prepare */
if(mysql_stmt_prepare(stmt, insertsql, strlen(insertsql)))
{
printf("mysql_stmt_prepare err!\n");
return -1;
}
char inpara1[50] = {0};
//int inpara1 = 4;
char outpara1[50] = {0};
//bind[0].buffer_type = MYSQL_TYPE_LONG;
//bind[0].buffer = &inpara1;
//bind[0].buffer_length = sizeof(inpara1);
bind[0].buffer_type = MYSQL_TYPE_STRING;
strcpy(inpara1, "hello");
bind[0].buffer = inpara1;
bind[0].buffer_length = sizeof(inpara1);
bind[1].buffer_type = MYSQL_TYPE_STRING;
bind[1].buffer = outpara1;
bind[1].buffer_length = 50;
/* 3. bind_param */
mysql_stmt_bind_param(stmt, bind + 0);
/* 4. execute */
if (mysql_stmt_execute(stmt))
{
printf("sorry\n");
}
else
{
/* 3.5 */
mysql_stmt_bind_result(stmt, bind + 1);
printf("bind[0].buffer = %s\n", (char *)bind[0].buffer);
if (0 != mysql_stmt_store_result(stmt))
{
printf("store result stmt err\n");
return -1;
}
else
{
printf("----------------------------table data--------------------------------\n");
while (!mysql_stmt_fetch(stmt))
{
printf("name = %s\n", outpara1);
}
}
mysql_stmt_free_result(stmt);
}
/* 5. close */
mysql_stmt_close(stmt);
// mysql_close
mysql_close(connection);
return 0;
}
使用 mysql c api 中,预处理查询条件 当过滤字段是字符串时
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- threenewbee 2016-03-13 14:03关注
char * insertsql = "select name from tlinuxcmysqlctr where `name` = ?;";
name是关键字
解决 无用评论 打赏 举报
悬赏问题
- ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
- ¥15 C# datagridview 单元格显示进度及值
- ¥15 thinkphp6配合social login单点登录问题
- ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
- ¥15 如何在scanpy上做差异基因和通路富集?
- ¥20 关于#硬件工程#的问题,请各位专家解答!
- ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
- ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
- ¥30 截图中的mathematics程序转换成matlab
- ¥15 动力学代码报错,维度不匹配