Php Include和MySQL

Php Include和MySQL,php,mysql,pdo,Php,Mysql,Pdo,我需要与数据库建立一个连接,并在PHP文件中的任何地方使用它。我理解,但也许我不完全理解。若我创建了一个PHP文件,其中包含连接到数据库的函数,并为其保留了一个变量,那个么将该文件包含在2个PHP文件中。有两个连接吗?我如何只建立一个连接并在任何地方使用变量 还请注意,我将使用PDO,如果您提供PDO语法方面的帮助会更好。无论页面加载中包含多少php文件,每次加载页面时数据库都会连接 因此,您可以将每个页面加载的连接数限制为一个 为此,请创建一个连接文件,其中包含以下内容: $user = 'd

我需要与数据库建立一个连接,并在PHP文件中的任何地方使用它。我理解,但也许我不完全理解。若我创建了一个PHP文件,其中包含连接到数据库的函数,并为其保留了一个变量,那个么将该文件包含在2个PHP文件中。有两个连接吗?我如何只建立一个连接并在任何地方使用变量


还请注意,我将使用PDO,如果您提供PDO语法方面的帮助会更好。

无论页面加载中包含多少php文件,每次加载页面时数据库都会连接

因此,您可以将每个页面加载的连接数限制为一个

为此,请创建一个连接文件,其中包含以下内容:

$user = 'database_username';
$pass = 'a_Hard_Password';
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
然后将保存该文件,并将其命名为
db.php
或类似名称

然后,在需要使用数据库的任何文件中,都将使用
require\u once
一次性包含该文件,如下所示:

require_once 'db.php';

$results = $db->query('SELECT * FROM my_table');
foreach($results AS $row) {
    var_dump($row);
}
有很多好的资源,这只是一个例子,但对于更复杂的查询,PDO的优点之一是绑定参数,如下所示:

$id = 5; // Or some other useful value
$name = 'James'; // Or your desired query value
$stmt = $db->prepare("SELECT * FROM my_table WHERE id=? AND name=?");
$stmt->execute(array($id, $name));
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($results AS $row) {
    // The PDO::FETCH_ASSOC parameter tells it to return an associative array...
    echo $row['id'];
    echo $row['name'];
   // ... etc ...
}

只要每个PHP文件只包含一次连接文件,它就不会创建变量的另一个实例,但是我想你的PHP文件会声明变量,比如$db=connection,所以我们要覆盖的变量,它会在每次我包含PHP文件时创建一个新连接,还是只允许访问变量?这是我真正的问题。是的,每次脚本结束时,变量都会随之结束-连接也会随之结束,因此它会在访问新页面时删除连接并创建新的连接,除非您将连接存储在会话或cookie中。但是,如果真正的问题是如何保持与数据库的连接,我不建议这样做在用户访问您的网站的整个过程中打开,然后您最好序列化连接变量,并将其排序为排序会话,然后在另一个页面上加载取消序列化字符串(如果字符串存在)并使该变量再次可用。连接不会由同一用户多次创建,脚本结束时会删除,并且新的将开始下一页加载