首页 > 解决方案 > 致命错误:未捕获的错误:在 C:\xampp\htdocs\shop\index.php 中调用 null 上的成员函数 query()

问题描述

我的代码有问题 我收到此错误消息

致命错误:未捕获的错误:在 C:\xampp\htdocs\shop\index.php:11 中调用 null 上的成员函数 query() 堆栈跟踪:#0 {main} 在 C:\xampp\htdocs\shop\ 中抛出第 11 行的 index.php

索引.php

<?php

require_once __DIR__.'/function/database.php';

$sql = 'SELECT id, title, description, price FROM products';

$result = getDB()->query($sql);
require __DIR__.'/templates/main.php';

./function/database.php

<?php 
function getDB() { 
    static $db;

    if ($db instanceof PDO){ 
        return $db; 
    }

    require_once CONFIG_DIR.'/database.php'; 

    $dsn = sprintf("myqsl:host=%s;dbname=%s;charset=%s",DB_HOST,DB_DATABASE,DB_CHARSET); 

    return $db; 
}

标签: phpmysql

解决方案


您忘记创建PDO连接:

<?php 
function getDB(){ 
    static $db; 
    if($db instanceof PDO){ 
        return $db; 
    } 
    require_once CONFIG_DIR.'/database.php'; 
    $dsn = sprintf("myqsl:host=%s;dbname=%s;charset=%s",DB_HOST,DB_DATABASE,DB_CHARSET); 
    $db = new PDO($dsn); // ← HERE
    return $db; 
}

推荐阅读