insert MySQL数据丢失的问题。(libmysql API)

有这么一个奇怪的问题,我使用C + libmysql.dll连接mysql服务器。

执行了一个语句

insert into ...
on duplicate update ...

这个语句执行完了以后,libmysql API返回执行成功了。

但是,数据并没有写到MySQL数据库中。

注:由于我insert into的是一段二进制数据,所以上述语句中实际也包含了stmt。

有人碰到过这个问题吗??




作者: madmanahong   发布时间: 2011-05-12

代码 是什么?有重复记录?

作者: wwwwb   发布时间: 2011-05-12

代码是C代码,根据LOG来看,执行

insert into ...
on duplicate key update ...


API返回的是2,表示确实更新了。


但是不知道为什么就是没写进去?
难道延迟写了?当时成功了,结果延迟后失败了
但是文档说了,不能delay啊


作者: madmanahong   发布时间: 2011-05-12

最后调用的API是
mysql_stmt_execute

我看了mysql文档,如果没有结果集的话,mysql_stmt_execute直接返回OK状态。

真的是有可能该处理被延迟执行了,结果执行失败了????

作者: madmanahong   发布时间: 2011-05-12

直接在客户端执行看有什么报错

作者: rucypli   发布时间: 2011-05-12

没有报错,确实没有,而且99%情况下都是好的。

只有那1%,从日志看也是好的。。。。。


作者: madmanahong   发布时间: 2011-05-12