用c语言操作mysql的话,
我想大家应该对这个函数mysql_real_query  不陌生吧。
现在有个问题。
mysql_real_query的第二个参数就是数据库操作的字符串,
如果这个字符串里面只有一个语句,那么正常执行,
如果这个字符串里面有多个语句,就惨了,一条都没有执行
比如我使用了存储过程
char sql[]="call fun1();call fun1();"
mysql_real_query  处理上面的sql会不工作.
如果
char sql[]="call fun1()"
mysql_real_query  处理上面的sql,会正常工作,sql后面有没有;都会工作。
请问这个怎么解决。

解决方案 »

  1.   

    要让MYSQL 的query 可以执行 存储过程, 需要把 mysql_real_connect 的最后一个参数设置为
    CLIENT_MULTI_STATEMENTS, 否则会报错。
      

  2.   


    mysql_real_connect 最后个参数为0,也是可以执行存储过程的,
    事务回滚也是可以的.
    我那个问题没有用存储过程了
    使用的是 
    insert into table value(),(),(),();
    这样的就可以了.