有一个multi update的场景,想一次性执行多条update statement。结果把语句拼接起来后,mysql一直语音syntax错误。
MySQL: [MySQL]: [Comment]: mysql_stmt_prepare error
以为是分号加的不对,或者sql真的写错了。折腾半天,发现应该都不是。
查看一下MySql对Multi-Statement的支持。Client需要声明 CLIENT_MULTI_STATEMENTS
需要在connect的时候设置一下client_flag。
mysql_real_connect()
MYSQL *mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned long client_flag)
那就看看Poco Mysql的源码吧。
mysql_real_connect.PNG
我去,压根就没有设置的地方。默认client_flag=0.
扑街。
网友评论