有这么一个奇怪的问题,我使用C + libmysql.dll连接mysql服务器。执行了一个语句insert into ...
on duplicate update ...这个语句执行完了以后,libmysql API返回执行成功了。但是,数据并没有写到MySQL数据库中。注:由于我insert into的是一段二进制数据,所以上述语句中实际也包含了stmt。有人碰到过这个问题吗??

解决方案 »

  1.   

    代码是C代码,根据LOG来看,执行insert into ...
    on duplicate key update ...
    API返回的是2,表示确实更新了。
    但是不知道为什么就是没写进去?
    难道延迟写了?当时成功了,结果延迟后失败了
    但是文档说了,不能delay啊
      

  2.   

    最后调用的API是
    mysql_stmt_execute我看了mysql文档,如果没有结果集的话,mysql_stmt_execute直接返回OK状态。真的是有可能该处理被延迟执行了,结果执行失败了????