gpt4 book ai didi

php - 执行SQL查询时出错,如果单独执行则有效

转载 作者:行者123 更新时间:2023-11-29 15:33:55 24 4
gpt4 key购买 nike

我仅在实时托管帐户(hostinger)上收到错误。它在我的本地(XAMPP)服务器上运行得很好。此外,在实时托管服务器上,仅当我执行调用各自 PDO 语句的多个检查时才会出现错误。

这是我的代码:

if(check if user exists){
if(submitted status different from status in DB){
call PDO function to update status and enter into log file
}

if(submitted role different from role in DB){
call PDO function to update role and enter into log file
}

if(submitted class different from class in DB){
call PDO function to update class and enter into log file
}
}else{
redirect()
}

三个“if 语句”仅检查提交的值是否与数据库中存在的值不同,因此只有当提交的值与数据库中的相应值不同时我才能更新。而且地位、角色和类(Class)并不相互依赖。

PDO函数:

  Each PDO function has a query like 
"INSERT INTO log where....;
UPDATE users where...."

如果两个或多个条件通过,我会收到错误。如果只有一个条件通过,例如只需更新状态,那么我不会收到任何错误。

此外,即使两个或多个条件通过(例如,需要更新状态和角色)并且我确实收到错误,更改也会以某种方式成功反射(reflect)在数据库中。

正如我之前提到的,在 XAMPP 上一切都运行得很好。

托管站点上的错误:

 Warning: Packets out of order. Expected 2 received 3. Packet size=48 
in..... line 39

Warning: Database::query(): MySQL server has gone away in..... line 39

Warning: Database::query(): Error reading result set's header
in.....line39

Fatal error: Uncaught PDOException: SQLSTATE[HY000]General error: 2006
MySQL server has gone awayin.......<--SOME VERY LONG TEXTS-->

如果有人能解释我为什么会收到此错误,我将非常感激。

如果这是一个愚蠢的问题,我深表歉意!

最佳答案

以前从未遇到过此错误,但我使用过 Hostinger 和其他免费托管网站,他们通常为免费帐户提供非常糟糕的服务

通过谷歌搜索错误,我找到了这个 stackoverflow 答案:MySQL error 2006: mysql server has gone away根据您所说的查询在本地主机上工作,问题可能是 Hostinger 的“max_allowed_pa​​cket 默认设置非常低”,这会导致您的并行查询崩溃

我建议尝试“alwaysdata.com”,我找到的最好的免费主机

关于php - 执行SQL查询时出错,如果单独执行则有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58447292/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com