国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

mysql出現(xiàn)一個很奇怪的錯誤

chenyeyu

每次客戶端連接后,第一次發(fā)送聊天信息,服務(wù)器那里執(zhí)行插入就會出錯,再發(fā)一次他就正常了。兩次發(fā)送的信息都是一樣的,除了時間。
錯誤如下:
用的GatewayWorker

INSERT INTO `xf_user_im` (`send_id`,`accept_id`,`sender`,`time`,`type`,`content`,`msg_time`) VALUES ('4','5','guwen','1467941111','txt','7','2016-07-08 09:25:09')exception 'PDOException' with message 'SQLSTATE: 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.' in /home/socket/GatewayWorker/Lib/DbConnection.php:1720
Stack trace:
#0 /home/socket/GatewayWorker/Lib/DbConnection.php(1720): PDO->prepare('INSERT INTO `xf...')
#1 /home/socket/GatewayWorker/Lib/DbConnection.php(1808): GatewayWorker\Lib\DbConnection->execute('INSERT INTO `xf...', NULL)
#2 /home/socket/Applications/IM/Events.php(126): GatewayWorker\Lib\DbConnection->query('INSERT INTO `xf...')
#3 : Events::onMessage('7f0000010b54000...', '{"accept_id":"5...')
#4 /home/socket/GatewayWorker/BusinessWorker.php(360): call_user_func('Events::onMessa...', '7f0000010b54000...', '{"accept_id":"5...')
#5 : GatewayWorker\BusinessWorker->onGatewayMessage(Object(Workerman\Connection\AsyncTcpConnection), Array)
#6 /home/socket/Workerman/Connection/TcpConnection.php(422): call_user_func(Array, Object(Workerman\Connection\AsyncTcpConnection), Array)
#7 : Workerman\Connection\TcpConnection->baseRead(Resource id #38)
#8 /home/socket/Workerman/Events/Select.php(250): call_user_func_array(Array, Array)
#9 /home/socket/Workerman/Worker.php(1472): Workerman\Events\Select->loop()
#10 /home/socket/GatewayWorker/BusinessWorker.php(174): Workerman\Worker->run()
#11 /home/socket/Workerman/Worker.php(900): GatewayWorker\BusinessWorker->run()
#12 /home/socket/Workerman/Worker.php(866): Workerman\Worker::forkOneWorker(Object(GatewayWorker\BusinessWorker))
#13 /home/socket/Workerman/Worker.php(422): Workerman\Worker::forkWorkers()
#14 /home/socket/start.php(32): Workerman\Worker::runAll()
#15 {main}WORKER EXIT UNEXPECTED 

有誰碰到過嗎

4263 4 0
4個回答

chenyeyu

我暈死啊,我發(fā)現(xiàn),是發(fā)第一條過來沒問題,第二條就有問題,第三沒問題,第四條有問題。。。。
我就在onMessage開頭這樣寫而已:

$db1 = Db::instance('zhongjianbao');
if (!$db1) {
return;
}
$db1->row("SELECT id FROM {$pre}user WHERE im_key=''");
return;

  • 暫無評論
chenyeyu

我把系統(tǒng)的PDO換成mysql了,,就沒問題了

  • 暫無評論
damao

你的select結(jié)果集不是一條記錄,是多條記錄,但是調(diào)用row只取一條,緩沖區(qū)中還有未獲取的記錄,mysql驅(qū)動不允許當(dāng)上一個執(zhí)行的 PDOStatement 對象仍有未取行時,再執(zhí)行一個 PDOStatement 對象獲取數(shù)據(jù)。

可以在你的sql里面加個 limit 1應(yīng)該就能解決問題了。

  • 暫無評論
latin

用完后的PDOStatement調(diào)用$PDOStatement->closeCursor()關(guān)閉下游標(biāo)就好了。
但是要改代碼數(shù)據(jù)庫的代碼。@walkor

年代過于久遠,無法發(fā)表回答
??