使用YII2的db和command来执行多条拼接的插入sql,执行后再执行任意sql(增删改查都可),会出现报错SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.
多条sql用分号拼接一次执行是否可以提升效率?
还有是什么原因导致了这个错误?
$db = Yii::$app->db;
$sql='insert into crjy_project(id,code,name,pid,pay_user,department_2,department_3,year,level,log_id) values(55,1,3,998,1,1,1,1,1,1);insert into crjy_project(id,code,name,pid,pay_user,department_2,department_3,year,level,log_id) values(56,1,3,998,1,1,1,1,1,1);';
$com = $db->createCommand($sql);
$flag=$com->execute();
$sql = 'select * from crjy_project';//test
// $com->pdoStatement->closeCursor();
$dc = $db->createCommand($s ->queryOne();
如果 把注释的那行取消注释可以正常执行第二条查询的sql,又或者unset($com)也可以正确执行。