针对 PHP 8.2 的程序 MySQL 改进驱动程序类文件 - 来自查询的堆栈跟踪错误并且不起作用

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

PHP 8.2 的程序 MySQL 改进驱动程序类文件 - 来自查询的堆栈跟踪错误并且不起作用

我已经为 PHP 8.2 编写了面向对象的 MySQL 改进驱动程序类文件。我正在转换和更新我的软件项目 Web 应用程序中的所有 125,000 行纯 PHP 编程代码。在过去的两年里,我一直在更新和重写其中的所有编程代码。我能够在 PHP 5.6 上使其 100% 正常运行,并在此过程中添加了大约 1,000 多个新功能。它几乎可以完成 Facebook 和 Twitter 所做的所有事情,因此我对结果非常满意,但我需要它在 PHP 8.2 上运行,然后在明年发布时在 PHP 9 上运行。

我切换到 PHP 8.2,通过将 SQL 语句更改为过程 MySQLi 来使其工作。我将内核文件中的所有 SQL 语句更改为 mysqli_connect();、mysqli_select_db ();, mysqli_query();等等,我能够让内核加载 Web 应用程序的主要部分。如果我继续将系统范围内的所有 SQL 语句转换为过程 MySQLI 语句,那么整个事情就会起作用,但我不想这样做。相反,我想创建一个新的类文件以与 MySQL Improvement 一起使用,我做到了,但我似乎无法让它工作。我尝试了所有不同的组合以使其发挥作用。但这行不通。

这是我编写的用于 MySQL 的类文件源代码的 Pastebin 链接 改进:

  • pastebin。 com/raw/Tzu7tVhp

这是一个指向应用程序面板源代码的粘贴链接,该面板使用面向对象的过程语句,用于 MySQL 改进和 PHP 8.2——它与我为 PHP 编写的类文件基本上是一样的5.6 和旧的 MySQL 标准驱动程序,其中一个可以 100% 功能运行,但这个不能:

  • pastebin。 com/raw/DxCa0BTa

这是内核文件源代码 - Cerberus.php 的粘贴链接:

  • 控制c。 com/13f40c4f/fullscreen.php?hash=158375a54da9516c4215fb852e8c1b1a&toolbar=true&linenum=false

这篇文章的附件是我从 MySQL Improved on PHP Version 8.2 得到的错误的屏幕截图

根本不起作用。

这是一张在 PHP 5.6 上 100% 正常运行的图片 enter image description here

这是 PHP 8.2 上的错误图片 enter image description here

来自应用程序面板的错误消息:

应用面板

Fatal error: Uncaught Error: Object of class mysqli could not be converted to string in /storage/ssd4/512/21484512/public_html/Cerberus/Applications/Panel/Applications_Panel.panel:58 
Stack trace:
 #0 /storage/ssd4/512/21484512/public_html/Cerberus/Cerberus.php(5010): include_once()
 #1 {main} thrown in /storage/ssd4/512/21484512/public_html/Cerberus/Applications/Panel/Applications_Panel.panel on line 58
php mysql mysqli php-8.2
1个回答
0
投票

所以我相信是 query() 和 fetch_array() 中的引号造成了问题,基本上它是在尝试连接对象,你可以尝试吗

$_Application_Module_Panel_Application_Links_DB_Query_SELECT_APPLICATION_LINKS = $DB->query(
    $_GLOBAL_SQL_DATABASE_SERVER_CONNECTION, 
    "SELECT * FROM {$_ACCESS_DATABASE_SERVER_DATABASE_TABLE_PREFIX}_application_links ORDER BY application_link_row ASC"
);

while ($_Application_Module_Panel_Application_Links_DB_Query_SELECT_APPLICATION_LINKS_Fetch_Array = $DB->fetch_array(
    $_GLOBAL_SQL_DATABASE_SERVER_CONNECTION, 
    $_Application_Module_Panel_Application_Links_DB_Query_SELECT_APPLICATION_LINKS, 
    MYSQLI_BOTH
)) {
    $_Application_Module_Panel_Application_Links_LIST_APPLICATION_LINK_NAME = $_Application_Module_Panel_Application_Links_DB_Query_SELECT_APPLICATION_LINKS_Fetch_Array['application_link_name'];
    $_Application_Module_Panel_Application_Links_LIST_APPLICATION_LINK_URL = $_Application_Module_Panel_Application_Links_DB_Query_SELECT_APPLICATION_LINKS_Fetch_Array['application_link_url'];

    echo ("<BIG><B>&middot;</B></BIG>&nbsp;<A HREF=\"$_Application_Module_Panel_Application_Links_LIST_APPLICATION_LINK_URL&amp;$_GLOBAL_SYSTEM_SECURITY_CACHE_CIRCUMVENTION_HTR_RANDOM_STRING_GENERATION\" TITLE=\":: Open & Display The Application Module :: $_Application_Module_Panel_Application_Links_LIST_APPLICATION_LINK_NAME ::\">$_Application_Module_Panel_Application_Links_LIST_APPLICATION_LINK_NAME</A><BR>");
}

$DB->free($_Application_Module_Panel_Application_Links_DB_Query_SELECT_APPLICATION_LINKS);

希望这有帮助

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