PDOのエラー
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.
メッセージの通り、fetchで値を取得すると↑のようなエラーメッセージが出るようです。
PDOのモードを
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY
にするとエラーはでなくなりますが、思った通りの動きをしないことも。
値をfetchAllで取るようにした方がよいようです。
参考:http://php.oss.eznetsols.org/manual/ja/function.PDO-exec.php