我有一个小问题。每次在PHP 7.2中执行此代码行,我的应用程序都会遇到错误500(PHP 5.6很好)
function selfDbDM($query,$type=0)
{
global $db;
static $db_exe = array();
$error = 0;
if($type==0)
{
$db_exe[] = $query;
}
else
{
//Do Something
}
}
调用脚本只是调用selfDbDM('SQL查询...');selfDbDM('SQL QUERY 2 ...');等
然后调用selfDbDM('',1);将所有更改提交给数据库。
我正在这样做,以便可以通过简单的方式使用mysqli_autocommit。
现在,我已切换服务器以提高性能,现在代码不再起作用。
编辑:
错误日志
[[[Tue Oct 15 22:55:51.371463 2019] [fcgid:warn] [pid 11859:tid 140389409335040] [client 37.201.185.7:8833] mod_fcgid:stderr:堆栈跟踪:,引用者:https://xyz/index.php?page=contract_new&step=2
[[Tue Oct 15 22:55:51.371468 2019] [fcgid:warn] [pid 11859:tid 140389409335040] [client 37.201.185.7:8833] mod_fcgid:stderr:#0 / var / www / vhosts / xyz / public /系统/页面/contract_new.php(171):selfDbDM('INSERT INTO`ko ...'),引荐来源:https://xyz/index.php?page=contract_new&step=2
[[Tue Oct 15 22:55:51.371472 2019] [fcgid:warn] [pid 11859:tid 140389409335040] [client 37.201.185.7:8833] mod_fcgid:stderr:#1 / var / www / vhosts / xyz / public /系统/页面/contract_new.php(340):contract_new_save_step2(),参考网址:https://xyz/index.php?page=contract_new&step=2
[[Tue Oct 15 22:55:51.371477 2019] [fcgid:warn] [pid 11859:tid 140389409335040] [client 37.201.185.7:8833] mod_fcgid:stderr:#2 / var / www / vhosts / xyz / include / core.function.php(300):init_contract_new(),参考网址:https://xyz/index.php?page=contract_new&step=2
[[Tue Oct 15 22:55:51.371481 2019] [fcgid:warn] [pid 11859:tid 140389409335040] [client 37.201.185.7:8833] mod_fcgid:stderr:#3 / var / www / vhosts / xyz / public / system / index.php(58):include_page('contract_new','/ var / www / vhosts ...','/ var / www / vhosts ...'),引荐网址:https://xyz/index.php?page=contract_new&step=2
[[[Tue Oct 15 22:55:51.371485 2019] [fcgid:warn] [pid 11859:tid 140389409335040] [client 37.201.185.7:8833] mod_fcgid:stderr:#4 {main},引用者:https://xyz/index.php?page=contract_new&step=2
[[[Tue Oct 15 22:55:51.372000 2019] [fcgid:warn] [pid 11859:tid 140389409335040] [client 37.201.185.7:8833] mod_fcgid:stderr:放入/ var / www / vhosts / xyz / include / 132行上的functions_mysql.php,引荐网址:https://xyz/index.php?page=contract_new&step=2
编辑2:
致命错误:未捕获错误:/var/www/vhosts/cash-keeper.eu/dev2.cash-keeper.eu/include/functions_mysql.php:132中的字符串不支持[]运算符
找到了发行...每当第132行出现问题时,PHP都会告诉我。那是这一行:
$db_exe[] = $query;
但是几行之后,一次成功的db提交之后,该数组被清除了,就像这样
$db_exe = '';
Well PHP 7.2不支持这种类型的“它是一个字符串,但是我们需要一个数组,然后是一个数组”。因此,真正的问题是,在第一个数据库提交中,因为它是一个数组,所以做的还不错。在那之后,它被清除为字符串,在第二轮回合中将某些内容提交给数据库,这不再起作用。
解决方法只是将清除数组的行更改为此:
$db_exe = array();
非常感谢大家。