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 链接 改进:
这是一个指向应用程序面板源代码的粘贴链接,该面板使用面向对象的过程语句,用于 MySQL 改进和 PHP 8.2——它与我为 PHP 编写的类文件基本上是一样的5.6 和旧的 MySQL 标准驱动程序,其中一个可以 100% 功能运行,但这个不能:
这是内核文件源代码 - Cerberus.php 的粘贴链接:
这篇文章的附件是我从 MySQL Improved on PHP Version 8.2 得到的错误的屏幕截图
根本不起作用。
来自应用程序面板的错误消息:
应用面板
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
所以我相信是 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>·</B></BIG> <A HREF=\"$_Application_Module_Panel_Application_Links_LIST_APPLICATION_LINK_URL&$_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);
希望这有帮助