提问人:Gcnord1008 提问时间:11/3/2023 最后编辑:Gcnord1008 更新时间:11/3/2023 访问量:86
用于 PHP 8.2 的过程性 MySQL 改进驱动程序类文件 -- 来自查询的堆栈跟踪错误并且不起作用
Procedural MySQL Improved Driver Class File For PHP 8.2 -- Stack Trace Errors From Queries and Does NOT Work
问:
用于 PHP 8.2 的过程性 MySQL 改进驱动程序类文件 -- 来自查询的堆栈跟踪错误并且不起作用
我为 PHP 8.2 编写了一个面向对象的 MySQL 改进驱动程序类文件的过程。我正在转换和更新我的软件项目 Web 应用程序中所有 125,000 行纯 PHP 编程代码。在过去的 2 年里,我断断续续地更新和重写了其中的所有编程代码。我能够在 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 Improved,我做到了,但我似乎无法让它工作。我尝试了所有不同的组合来让它工作。但这行不通。
这是一个粘贴链接,指向我为与MySQL一起使用而编写的类文件的源代码 改进:
- 帕斯特宾。com/raw/Tzu7tVhp
这是一个指向应用程序面板源代码的粘贴链接,该面板使用过程到面向对象的语句,用于 MySQL Improved 和 PHP 8.2 - 它与我编写的用于 PHP 5.6 和旧的 MySQL 标准驱动程序的类文件基本相同,并且具有 100% 的功能, 但这个没有:
- 帕斯特宾。com/raw/DxCa0BTa
这是内核文件源代码 - Cerberus.php 的粘贴链接:
- 控制 c .com/13f40c4f/fullscreen.php?hash=158375a54da9516c4215fb852e8c1b1a&toolbar=true&linenum=false
这篇文章的附件是我从 MySQL 上得到的错误的屏幕截图 在 PHP 版本 8.2 上进行了改进
它根本不起作用。
这是它在 PHP 5.6 上 100% 功能的外观图片,在此处输入图像描述
这是 PHP 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);
希望这会有所帮助
评论
include_once()
mysqli
fetch_XXX
PDO
mysqli