在PHP同一事物里调用MYSQL的存储过程后再次执行另外的一个或多个命令(或者在同一事物里执行多个存储过程),如果使用mysqli的query方法获得结果,将获得一个错误:Commands out of sync; you can't run this command now
消息说明MYSQL数据库认为是这一个错误的命令执行顺序。原因在于MYSQL的存储过程执行完成后除了返回实际结果集还会返回存储过程执行的转态
,而上面的代码仅处理了第一个结果集,第二个结果集并没有被释放掉。
要解决这个问题,需要用mysqli的multi_query方法
详细可以参考:http://www.cnblogs.com/doll-net/archive/2009/04/29/commands-out-of-sync.html