我刚刚在本地服务器上升级到PHP8.0,现在mysql(mysql版本14.14发行版5.7.32,linux(x86_))出现以下问题:
SELECT * FROM `countries` WHERE countryname = 'alkdfj';
但是,按预期返回一个空行
SELECT * FROM `countries` WHERE countryname = 'alkdfj' ORDER BY countryname;
导致mysql不返回(而不是空行)。在phpmyadmin中,错误消息为:
Error in processing request
Error code: 500
Error text: Internal Server Error (rejected)
而在我的网站上,php只是停止创建页面。
在我的生产站点上,仍然运行php7.0之类的,没有问题。
我已经测试了几个例子,似乎空结果集和 ORDER BY
导致mysql崩溃,因为我已经更新到PHP8.0。怎么了?
补充以下评论:非常感谢你的评论,即使我可以看到我的问题不清楚。你可能已经猜到了,我是自学成才的。
@我不知道“网络服务器日志”在哪里。我会努力找到的。
@粘性位:下面是我尝试使用pma生成错误500的最小可再现示例:
CREATE TABLE countries (
countryname varchar(100),
capital varchar(100)
);
INSERT INTO countries
VALUES ('Denmark','Copenhagen');
INSERT INTO countries
VALUES ('Sweden','Stockholm');
INSERT INTO countries
VALUES ('Norway','Oslo');
SELECT * FROM `countries` WHERE countryname = 'alkdfj' ORDER BY countryname;
如果我删除最后一个“orderbycountryname”,没有问题。
除了pma之外,我没有其他客户机,除了我的php网站,在php8.0下同样的问题也会发生。
@阿基娜,我再次为任何不明确道歉。我原来问题中的第一个查询结果是空行集。第二个查询没有结果。我不知道怎么说得更清楚些,但也许全部加起来会有助于解释。
暂无答案!
目前还没有任何答案,快来回答吧!