PDO全球使用

时间:2014-12-25 22:51:08

标签: php mysql pdo

最近,我在一些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所以它也会在函数中被识别出来吗?

1 个答案:

答案 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);           
}