致命错误:未定义的函数db()(但它是)

时间:2016-04-21 15:20:50

标签: php pdo

所以我有这个包含数据库连接的pdo.php文件。这是功能:

function db() {
    static $dbh;
    if(!isset($dbh)) {
        $dsn = sprintf('mysql:host=%s;dbname=%s', SHOP_DB_HOST, SHOP_DB_NAME);
        try {
            $dbh = new PDO($dsn, SHOP_DB_USER, SHOP_DB_PASSWORD);
        } catch(PDOException $e) {
            header('Status: 500 Internal Server Error');
            echo '<b>Error:</b> Database connection failed.';
            exit;
        }
        $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $dbh->exec('SET NAMES utf8');
    }
    return $dbh;
}

这是我需要使用db()的另一个文件:(它正在检测ajax调用并基于此,应该更新信息)

if(isset($_POST['updateTree'])) {
    $page_id = $_POST['page_id'];
    $parent_id = $_POST['parent_id'];
    $customer_id = $_SESSION['customer_id'];
    $stojkovQ = db()->prepare("
        UPDATE 
            cms_pages
        SET 
            topicId = :parent_id
        WHERE
            page_id = :page_id
        AND
            customer_id = :customer_id
    ");
    $stojkovQ->execute(array(
        'customer_id'    => $customer_id,
        'page_id'        => $page_id,
        'topicId'        => $parent_id
    ));
    echo 'updated';
}

所以在得到“致命错误:调用未定义函数db()”之后,甚至将它包含在我的header.php文件中(包含我网站的所有包含和配置信息)。如果我尝试再次将其包含在我的查询之上,则会产生另一个错误(无法重新声明db())

任何解决这个问题的方法都会有很大的帮助。

0 个答案:

没有答案