PHP模块:如何;“连接”;AJAX请求的文件


PHP modules: how to "connect" files for AJAX requests

假设我有一个文件结构,如下所示:

/
index.php                   // holds db connection, login information, ...
...
/someSubSite
    content_someSite.html   // basic structure, texts, forms, ...
    styles_someSite.css     // styling of content_someSite.html
    backend_someSite.php    // should send answers of AJAX requests
    frontend_someSite.js    // sends AJAX requests
                            // (when a form is submitted)
    ...

index.php中的数据库连接是通过PDO实现的。因此,很明显,我不能在backend_someSite.php中直接使用这个db对象,因为它是在index.php->两个不同的范围中声明和初始化的,这些文件之间没有交互。

所以我现在的问题是:解决这个问题的最佳方法是什么?

我应该为每个子站点的每个php文件创建一个PDO吗?并通过php会话共享index.php收集的登录信息?

基本上,问题是:当前端通过AJAX查询子网站时,在index.phpbackend_some(sub)Site.php之间共享信息甚至整个PDO和其他对象的最佳方式是什么。

还不清楚index.php中还有什么。如果它与您描述的完全一样,您可以在backend_someSite.phpinclude它。

如果它还有其他东西,例如任何输出到浏览器的东西,那么你应该创建一个只包含连接信息之类的东西的文件(我建议称之为config.php),然后包括这个文件(在index.php和backend_someSite.php中)

也许您可以尝试将带有连接信息的代码放在一个单独的文件中,称之为connection.php

<?php
try {
    $connection = new PDO('db_driver:host=myhost;dbname=db_name', 'username', 'password');
} catch (PDOException $e) {
    die(print ("Error!: " . $e->getMessage()));
}
?>

这只是一个例子。然后,您可以每隔一个.php中需要连接到数据库的include文件,并在那里使用$connection变量。

如果希望在不复制代码的情况下在脚本之间共享会话信息,则可以对会话检查执行同样的操作。

一切由您决定