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

标签 php mysql ajax class instances

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

我有以下类(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/

相关文章:

php - 在 mysql 更新查询中使用两个具有不同键的数组

php - 使用 ajax 保存 wordpress 设置 api 选项,

mysql - 太阳黑子和solr

php - CakePHP3 : How to run custom SQL query in table model

javascript - 将嵌套的 PHP 循环传递给 javascript

php - Coinbase Pro API {"message":"invalid signature"}

mysql - Connection.query 函数被跳过并且不在 if 语句中执行

javascript - 服务器和浏览器之间的可信通信?

php - 使用ajax获取javascript变量

javascript - 我如何记住 php laravel 中的下拉值?