静态PHP数组在每次调用时均引发错误500

问题描述 投票:-1回答:1

我有一个小问题。每次在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中的字符串不支持[]运算符

php arrays static
1个回答
0
投票

找到了发行...每当第132行出现问题时,PHP都会告诉我。那是这一行:

$db_exe[] = $query;

但是几行之后,一次成功的db提交之后,该数组被清除了,就像这样

$db_exe = '';

Well PHP 7.2不支持这种类型的“它是一个字符串,但是我们需要一个数组,然后是一个数组”。因此,真正的问题是,在第一个数据库提交中,因为它是一个数组,所以做的还不错。在那之后,它被清除为字符串,在第二轮回合中将某些内容提交给数据库,这不再起作用。

解决方法只是将清除数组的行更改为此:

$db_exe = array();

非常感谢大家。

© www.soinside.com 2019 - 2024. All rights reserved.