即使在声明全局函数之后,在非对象上调用成员函数 prepare()


Call to a member function prepare() on a non-object even after declaring global function

我的文件中有 12 个函数,但显示Call to a member function prepare() on a non-object时出错

这是问题上升

    <?php
function getUsers() {//returns an array of users
    global $db;
    $list = array();
    $stmt = $db->prepare('SELECT username FROM user_info');
    $users = $stmt->fetch(PDO::FETCH_ASSOC);
    if (is_array($users) || is_object($users))
{
    foreach ($users as $user)    {
        array_push($list, $user[0]);
    }return $list;
}
}

    $users = getUsers();
function getImageURL($user) {
    $stmt = $db->prepare('SELECT propic FROM user_info WHERE username=:username');
    $stmt->execute(array(':username' => $user));
    $source = $stmt->fetch(PDO::FETCH_ASSOC);
    return $source;
}

这是我的连接文件代码

ob_start();
session_start();
//set timezone
date_default_timezone_set('Asia/Kolkata');
//database credentials
define('DBHOST','localhost');
define('DBUSER','sanoj');
define('DBPASS','123456');
define('DBNAME','1video');
//application address
define('DIR','http://www.blogtom.com/');
define('SITEEMAIL','sanoj@gmail.com');
try {
    //create PDO connection 
    $db = new PDO("mysql:host=".DBHOST.";port=3306;dbname=".DBNAME, DBUSER, DBPASS);
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
    //show error
    echo '<p class="bg-danger">'.$e->getMessage().'</p>';
    exit;
}
//include the user class, pass in the database connection
include('classes/user.php');
$user = new User($db); 

正如我提到的,我的文件中有 12 个功能,有人可以帮助我如何解决这个问题吗

终于解决了

function getUsers() {//returns an array of users
    global $db;
    $list = array();
    $stmt = $db->prepare('SELECT username FROM user_info');
    $users = $stmt->fetch(PDO::FETCH_ASSOC);
    if (is_array($users) || is_object($users)) {
        foreach ($users as $user) {
            array_push($list, $user[0]);
        }return $list;
    }
}
$users = getUsers();
function getImageURL($user) {
    global $db;
    $stmt = $db->prepare('SELECT propic FROM user_info WHERE username=:username');
    $stmt->execute(array(':username' => $user));
    $source = $stmt->fetch(PDO::FETCH_ASSOC);
    return $source;
}