最近,我在一些WordPress网站上工作,我受到DRY原则的影响。所以我也开始使用多种功能。我现在遇到的问题是:
我有一个到MySql服务器的PDO连接和几个需要这个连接的函数。我宣称我的$ pdo是一个全局的,所以我也可以在我的函数中使用它,但我不明白为什么,当我在函数中使用它时,它说它不被识别..这是一个例子: db.php中
global $pdo;
try {
$pdo = new PDO('mysql:host='.$host_mysql.';dbname='.$db_mysql.'',$user_mysql,$pass_mysql);
} catch(PDOExcetion $e) {
$output='Error';
echo $output;
exit();
}
functions.php
require_once('db.php');
function test() {
$sql ="/*Some mysql here*/";
$pdo->exec($sql); // and this is the line where i get the error
}
我通过将$ pdo作为每个函数的arrgument来解决这个问题,但是因为我有一个非常大的项目,所以它减慢了我很多。有什么方法可以声明我的$ pdo所以它也会在函数中被识别出来吗?
答案 0 :(得分:0)
你必须让全局可用。
require_once('db.php');
function test()
{
global $pdo;
$sql ="/*Some mysql here*/";
$pdo->exec($sql);
}
或
require_once('db.php');
function test()
{
global $pdo;
$sql ="/*Some mysql here*/";
$GLOBALS['pdo']->exec($sql);
}