即使在声明了全局函数之后,也可以在非对象上调用成员函数 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;
}