mysql unexpected if_mysql出现一个很奇怪的错误

每次客户端连接后,第一次发送聊天信息,服务器那里执行插入就会出错,再发一次他就正常了。两次发送的信息都是一样的,除了时间。

错误如下:

用的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

有谁碰到过吗

### 回答1: MySQL出现unexpected identifier”错误,意思是“意外的标识符”。这通常是由于SQL语句中存在语法错误或拼写错误导致的。需要检查SQL语句中的每个标识符,确保它们都正确拼写和格式化。如果无法解决问题,请参考MySQL文档或寻求专业帮助。 ### 回答2: MySQL中的“unexpected identifier”(意味着未预期的标识符)错误是一种常见的错误类型。它通常在查询语句中发生,提示用户输入的语句中包含了无法识别的标识符或错误的语法结构。下面将进一步介绍这个问题及其可能的解决办法。 首先,MySQL中的“unexpected identifier”错误通常是由多种因素造成的,其中包括以下几个可能的原因: 1. SQL语句中使用了错误的关键字、变量名或操作符。在编写查询语句时应该仔细检查,确保所有标识符都是正确的。 2. SQL语句中缺少引号或括号。如果SQL语句中缺少引号或括号,则可能会引起无法识别的标识符错误。 3. 数据库表名、列名或别名拼写错误。如果SQL语句中表名、列名或别名拼写错误,则可能会导致无法识别的标识符错误。 为了解决这个问题,我们需要依次执行以下步骤: 1. 首先,我们应该检查SQL语句中是否存在错误的语法结构。通常情况下,查询操作的where子句是最容易出错的地方。我们可以将语句拆分成多个部分,检查每个部分是否正确。 2. 在SQL语句中使用双引号或单引号。这些引号用来给文本、日期和时间值添加引用,可确保MySQL正确识别这些标识符。同时要注意,在使用单引号或双引号时还需注意使用成对的引号。 3. 检查数据库表名、列名或别名的拼写。如果SQL语句中表名、列名或别名拼写错误,则可能会导致无法识别的标识符错误。因此,我们需要仔细检查这些标识符的拼写是否正确。 总之,MySQL中的“unexpected identifier”错误可能是由多种因素造成的。要解决这个问题,我们需要仔细检查SQL语句中的语法结构、引用、拼写等,以确保所有标识符都是正确的,并能够被MySQL正确识别。 ### 回答3: MySQL错误信息之一是“Unexpected identifier”。这个错误通常会在你的SQL语句中出现,它表示MySQL无法识别您输入的标识符。 标识符可以是表名、列名、变量名等等。在MySQL中,每个标识符都必须是唯一的。如果你想在SQL语句中使用标识符,你必须遵守这个规则。 “Unexpected identifier”错误可能是因为标识符的拼写错误、大小写错误、使用了非法的字符或者使用了MySQL保留字。如果你在使用标识符时出现了这个错误,你应该检查标识符的拼写和大小写,确保它们符合MySQL的规则。如果你使用的是MySQL保留字,你应该使用反引号把标识符括起来,以便MySQL知道你使用的是标识符。 当你遇到“Unexpected identifier”错误时,你可以在MySQL官方文档中查找标识符规则和保留字列表,以确定你使用的标识符是否合法。你也可以在网上寻找解决方案,以解决这个问题。 总之,“Unexpected identifier”错误可能会在你使用MySQL出现,但只要你严格遵守MySQL的标识符规则,就可以避免这个问题的发生。如果你在使用MySQL时遇到了这个问题,一定要仔细检查你的SQL语句,以确保其中的标识符没有出现任何错误
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值