我有如下所示的 PHP 脚本:-
main.php 文件:
<?php
include'../scripts/pdoMysqlPhpScript1.php';
?>
pdoMysqlPhpScript1.php 文件:
<?php
include 'login.php';
$dbh-> query('use testdata1970_10');
foreach($dbh->query('call getallusers();') as $row)
?>
login.php 文件:
<?php// PDO is used
$dsn = 'mysql:host=localhost; Port=3306';
$user = 'root';
$pswd = '';
$dbh = new PDO($dsn, $user, $pswd,
array(PDO::ATTR_PERSISTENT, TRUE));
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
?>
这是工作。
但是,如果我在 main.php 中包含 login.php 并从 pdoMysqlPhpScript1.php 中删除 login.php。它不起作用。
为什么会这样,我如何确保 login.php 被使用一次,这样我就不需要对来自许多不同 php 文件或存储过程的每个服务再次使用它,直到它在脚本结束时关闭?
例如:-
main.php 文件:
<?php
include 'login.php'; //scripts inside:- $dbh = new PDO($dsn, $user, $pswd,....);
include 'fileA.php'; //scripts inside:- $dbh = query('use storedprocedure');
include 'fileB.php'; //scripts inside:- $dbh -> query ('select x from xtable');
include 'fileC.php'; //scripts inside:- $stmt = $dbh->prepare('select name, value from test where name=:what');
include 'fileD.php'; //scripts inside:- $dbh = query('select testtable()');
include 'fileE.php'; //scripts inside:- $stmt = $dbh->prepare('select name, value from test');
?>
请告知谢谢
克莱门特