int mysql_query(MYSQL *mysql, const char *query);
请问mysql_query支持多语句一起提交吗? 比如说:
sprintf(szSql,"update employee set name='111' where id=1;insert into employee values(2,'222','1990-02-06','tianjin');");
mysql_query(&mysql,szSql);
这样的操作好像不能成功,是使用的步骤不到位还是mysql本身不支持这样做呢?
如果提交的语句是嵌套类型的呢?

解决方案 »

  1.   

    Mysql 5.1才支持
    要用mysql_real_connect()的最后一个参数 client_flag
    如果你要在一个字符串内向服务器发送多条语句(以";"分隔)。必须使用
    CLIENT_MULTI_STATEMENTS 标记,如果不使用此标记,mysql服务器会认为你向服务器提交的查询就是一条sql语句。
    然后mysql自动设置 CLIENT_MULTI_RESULTS 标记,表示有可能返回多个结果集。
    如果先前打开的连接没有关闭,你还可以使用 
    mysql_set_server_option(MYSQL_OPTION_MULTI_STATEMENTS_ON)
    打开多语句查询的功能
    参考手册 Api and Libraries 的 Mysql C Api 部分
      

  2.   

    不可以,mysql_query只支持单语句