gpt4 book ai didi

PHP 类 - 为每个实例存储 MySQL 连接

转载 作者:太空宇宙 更新时间:2023-11-03 10:40:23 25 4
gpt4 key购买 nike

我遇到了一个我不知道如何解决的问题。让我们开始解释:

我有以下类(class):

class MyClass{

function MyClass($mysql_dbcon){
$this->mysql_dbcon = $mysql_dbcon;
}

function execute(){
include("myscript.php");
}

}

myscript.php 是一个 HTML 模板,它使用 Ajax 与其他 PHP 脚本 进行通信。由于这些其他 PHP 脚本未直接包含在类中,因此我无法获取变量 mysql_dbcon 并为每个实例使用不同的连接。假设我有以下实例:

$i1 = new Myclass($dbcon1);
$i1->execute();

$i2 = new Myclass($dbcon2);
$i2->execute();

两个实例都将执行调用其他处理脚本的 Ajax 函数,但这些脚本无法访问实例的 mysql_dbcon 变量,因为它们是独立的脚本执行。

我该如何解决这个问题?将 MySQL 连接存储在 $_SESSION 中以便所有脚本都可以访问它是否正确?也许是这样的:

$_SESSION['instance_identifier'] = $this->mysql_dbcon;

我想要实现的目标

我想创建一个类,开发人员可以在其中设置 MySQL 连接,并且每个实例都可以访问不同的数据库,因此每个实例都将显示来自不同数据库的数据。问题在于该数据的动态加载。

提前致谢

最佳答案

你无法解决它。

but this script can't access the instance's mysql_dbcon variable due to it's an independent script execution

没错。时期。您正在启动一个完全不同的 PHP 脚本,它与之前的脚本完全没有任何共享。事实上,当浏览器发起 AJAX 请求时,“现有的”MySQL 连接已经断开并关闭,因为整个 PHP 脚本已经停止。

“myscript.php”只需打开一个新连接。您不能将连接序列化为 session ;它不是可以以序列化形式表示的数据。这与任何其他两个独立的 PHP 文件完全相同的机制,涉及 include 和 AJAX 的事实没有任何改变。

另见 https://stackoverflow.com/a/13840431/476

关于PHP 类 - 为每个实例存储 MySQL 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39720833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com