开发者社区> 问答> 正文

delete操作错误??报错

使用mysql C API中的mysql_real_query执行下面两条语句

SELECT n_type, n_msgs FROM Notify WHERE n_uid = 10002;DELETE FROM Notify WHERE n_uid = 10002

出现下面的错误:

Error :You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELETE FROM Notify WHERE n_uid = 10002' at line 1



这两句单独执行不报错,一起执行的话就报错!而在mysql终端上同时执行两句确不报错。。。

由于服务端使用了数据库连接池,导致没次执行完这个后,不知怎么的影响到线程处理后来的请求中的预处理操作不成功。


展开
收起
爱吃鱼的程序员 2020-06-14 18:22:57 468 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    你看看你调的函数在处理返回的结果集是不是通用,按道理是不可以的,删除操作的结果只有一条一个字段,就是受影响的记录条数回复<aclass='referer'target='_blank'>@锋了:预处理还是不能得到结果执行多语句的问题我知道了,我改成会话了,试试看后续的预处理是不是还是有出问题。处理结果集的函数使用的是mysqlCAPI,是可以通用的。删除的记录可能有多条,也可能没有。不知到这是什么原因,就算删除delete这条,查询成功,后续的预处理查询也不返回结果,如果不处理这个查询的后都正常。难道是Notify表的设置问题吗,没怎么专门设置过的。。

    唉,忙的忘了,服务端是一个多月前写的,最近要加了个功能,忘了这回事了。

    <spanstyle="background-color:#F6F6F6;font-family:'CourierNew',Arial;font-size:9pt;line-height:1.5;">MySQL5.1支持在单个查询字符串中指定的多语句的执行。要想与给定的连接一起使用该功能,打开连接时,必须将标志参数中的CLIENT_MULTI_STATEMENTS选项指定给mysql_real_connect()。也可以通过调用mysql_set_server_option(MYSQL_OPTION_MULTI_STATEMENTS_ON),为已有的连接设置它。


    学习了!问题能换行吗?还要努力去拖。。不能啊,我写外面吧

    2020-06-14 18:23:15
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载