我正在尝试使用

mysql C API执行C程序,使用更新查询连接到mysql并且我没有得到任何编译或链接错误,但是在db表中没有更新行.

当我运行此代码时,我在emp中更新了空值.状态字段

#define STRING_SIZE 256

char* eStatus,myeStatus;

int myempid,empid;

int i;

for(i = 0; i < 5 ; i++){

const char* sqlQuery = "update employee_info set estatus = ? where empID = ?";

if (mysql_stmt_prepare(stmt, sqlQuery, strlen(sqlQuery))) {

fprintf(stderr, " mysql_stmt_prepare(), update failed\n");

fprintf(stderr, " %s\n", mysql_stmt_error(stmt));

return -1;

}

memset(param, 0, sizeof(param)); /* zero the structures */

if (info.state == 2)

eStatus = "present";

else

eStatus = "absent";

empid = i;

// Init param structure

// Select

param[0].buffer_type = MYSQL_TYPE_STRING;

param[0].buffer = (void *) &eStatus;

param[0].buffer_length = STRING_SIZE;

param[0].is_null = 0;

param[0].length = &str_length;

param[1].buffer_type = MYSQL_TYPE_SHORT;

param[1].buffer = (void *) &myempID;

param[1].buffer_length = STRING_SIZE;

param[1].is_null = 0;

param[1].length = 0;

myeStatus = eStatus;

myempid = empid;

if (mysql_stmt_bind_param(stmt, param) != 0) {

fprintf(stderr, " mysql_stmt_bind_param() failed\n");

fprintf(stderr, " %s\n", mysql_stmt_error(stmt));

return -1;

}

/* Execute the statement */

if (mysql_stmt_execute(stmt)) {

fprintf(stderr, " mysql_stmt_execute(), failed\n");

fprintf(stderr, " %s\n", mysql_stmt_error(stmt));

return -1;

}

} // end of for loop

mysql中的表模式

empid INT(11)

estatus varchar(10)

我无法弄清楚为什么状态没有在mysql表中更新.它是不匹配的数据类型,还是值没有正确绑定到sqlquery?

任何线索?谢谢.

mysql查询语句在哪里编写_mysql编写语句:更新查询相关推荐

  1. mysql查询单表的销售额_MYSQL select语句的单表查询

    MYSQL select语句的单表查询 发布时间:2020-05-29 13:19:48 来源:亿速云 阅读:131 作者:Leah 这篇文章运用了实例代码展示select语句的单表查询的用法,代码非 ...

  2. mysql只能查询出1000条数据_MySQL SELECT语句中只能输出1000行数据的原因

    同事反映,客户的一套MySQL生产库,执行SELECT.. INTO OUTFILE语句只能导出1000行 最初以为是系统参数被重新设置了,建议他更改系统参数 mysql> set global ...

  3. mysql 小表连大表_MySQL 表之间关联查询时,为什么建议小表驱动大表?

    有的时候我们在操作数据库时会将两个或多个数据表关联起来通过一些条件筛选数据,在关联表时我们要遵循一些原则,这样会使我们编写的SQL 语句在效率上快很多. 一.优化原则 小表驱动大表,即小的数据集驱动大 ...

  4. mysql连接多个存储存储_Mysql(三):多表查询和存储程序

    今天内容: ● 多表查询(内连接 外连接 子查询) ● 存储程序(存储过程 函数) 多表查询 ​同时从多张数据表中查取到需要的数据即是多表查询. 多表查询时,参与查询的表中每条数据进行组合,这种效果称 ...

  5. mysql查询姓名第二个字_Mysql(2)查询实例

    一:MySQL简介与安装 MySQL是一种中型.易用的关系型数据库管理系统(DBMS,Database Management System). 安装步骤: 第一步:  sudo apt-get ins ...

  6. mysql查询并更新_MySQL如何实现更新查询?

    MySQL UPDATE查询用于更新MySQL数据库中表中的现有记录.它可以用于同时更新一个或多个字段.并且可用于使用WHERE子句指定任何条件.(相关推荐:<MySQL教程>) UPDA ...

  7. mysql删除表后清空索引_MySQL删除语句比较,清空表数据,重置自增长索引

    drop truncate delete 程度从强到弱 1.drop table tb drop将表格直接删除,没有办法找回 2.truncate (table) tb truncate 删除表中的所 ...

  8. mysql 计算近30天总金额_mysql┃一条更新语句是怎么执行的???

    本文共:3018字 预计阅读时间:8分钟 文章首发于我的微信公众号:哪儿来的moon,欢迎大家关注 mysql┃一条更新语句是怎么执行的??? 前言 通过上一篇文章的内容,大家已经对mysql的基本架 ...

  9. mysql语句delete报错_MySQL delete语句的问题

    以前遇到过几次这个问题,都觉得问题不大,所以没有记录,但是这次又遇到了,而且没有第一时间想起来,所以还是有记录下的必要 MySQL    delete语句使用子查询操作同一张表的时候会抛出 DELET ...

最新文章

  1. bootstrap的php写在哪里,bootstrap用什么编辑器写
  2. 一个项目涉及到的50个Sql语句(整理版)
  3. 软件项目管理0831:不要自我评价过高
  4. Linux调用外部服务出现java.net.UnknownHostException
  5. 用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:4不能在第三位,3与5不能相连。...
  6. 2018年下半年《软件评测师》下午试卷及答案
  7. 关于Firefox插件
  8. 互联网专用计算机屏保,18个Windows 98屏保,简直怀念!
  9. 正交表生成工具allpairs的使用
  10. iphone计算机设置,苹果手机怎么设置其他铃声
  11. 人工智能技术中的科学性与艺术性
  12. 伽利略定位系统的历史
  13. File xxx specified for property 'resourceFile' does not exist.解决方法
  14. Linux 中 Netcat 工具的使用
  15. 创新触手可及: 为使用企业级 OSGi 做好准备了吗?
  16. 论文笔记:Adversarial Net与IQA
  17. Windows11桌面及桌面应用转移操作
  18. java lucene搜索引擎的实现
  19. SaaS的前世、今生与未来 [上篇]
  20. 云主机Windows Server 2012 R2 的 VMware 和HYPER-V不兼容怎么删除HYPER-V

热门文章

  1. 【5】CCNA课堂第一天
  2. ExtJS入门之一 类与继承
  3. vscode之添加新语言扩展——aspx-html
  4. Employee Bonus --leetcode
  5. ThinkPHP框架学习(二)
  6. 《Android游戏开发详解》一2.16 区分类和对象
  7. ActFrameWork集成Beetlsql的Mapper功能
  8. (原+转)ubuntu14中结束多个caffe进程中的某个
  9. UWP图片编辑器(涂鸦、裁剪、合成)
  10. plsql command window 执行批量脚本