Mysql 检查用户联机状态

Mysql 检查用户联机状态,mysql,pdo,status,Mysql,Pdo,Status,我想检查一下用户的在线状态,并根据我读过的许多资料构建了一个页面。我仍然不能得到想要的结果。也许有人可以看看我当前的代码,让我知道这部分有什么问题?以下代码是检查用户联机状态的代码,我当前也收到以下错误消息: 致命错误:在第11行的C:\xampp\htdocs\includes\online_status.php中调用未定义的方法PDOStatement::prepare() <?php error_reporting(E_ALL & ~E_NOTICE); require_o

我想检查一下用户的在线状态,并根据我读过的许多资料构建了一个页面。我仍然不能得到想要的结果。也许有人可以看看我当前的代码,让我知道这部分有什么问题?以下代码是检查用户联机状态的代码,我当前也收到以下错误消息:

致命错误:在第11行的C:\xampp\htdocs\includes\online_status.php中调用未定义的方法PDOStatement::prepare()

<?php 
error_reporting(E_ALL & ~E_NOTICE);
require_once($_SERVER['DOCUMENT_ROOT'] . '/includes/dbconfig.php');
$timestamp = date("Y-m-d H:i:s");



#RETURN A LIST OF WHICH USERS ARE INDICATED AS ONLINE IN THE TABLE 
            $stmtonline = $db->prepare('SELECT * FROM sys_members'); 
            $stmtonline->execute;   
            $foundRows = $stmtonline->prepare("SELECT FOUND_ROWS()")->fetchColumn();            

    if($foundRows->rowCount())
        {
        echo $foundRows->rowCount();
        }



if($row_count=="0")
        {


#INSERT THE USER INTO THE ONLINE_USERS TABLE IF THEY DO NOT EXIST
            $stmtinsrt = $db->prepare('INSERT INTO sys_online_users (memberID, username, last_active) VALUES (:memberID, :username, :last_active)');
            $stmtinsrt->execute(array(
                ':memberID' => $_SESSION['memberID'],
                ':username' => $_SESSION['username'],
                ':last_active' => $timestamp                
            ));
            $id = $db->lastInsertId('memberID');
        }
        else 
        {
#UPDATE THE USER'S CURRENT STATUS IN THE TABLE IF THE DO EXIST
            $stmtupd = $db->prepare('INSERT INTO sys_online_users (memberID, username, last_active) VALUES (:memberID, :username, :last_active)');
            $stmtupd->execute(array(
                ':memberID' => $_SESSION['memberID'],
                ':username' => $_SESSION['username'],
                ':last_active' => $timestamp                
            ));
            $id = $db->lastInsertId('memberID');
        }   





?>

替换
$stmtonline->prepare
$db->prepare
通过简化查询,我终于让查询正常运行了。。以下是对我有效的结果:

<?php error_reporting(E_ALL & ~E_NOTICE);     require_once($_SERVER['DOCUMENT_ROOT'] . '/includes/dbconfig.php');    $timestamp = date("Y-m-d H:i:s");
    {



        $stmtinsrt = $db->prepare('INSERT INTO sys_page_hit (memberID, username, last_active) VALUES (:memberID, :username, :last_active) ON DUPLICATE KEY UPDATE last_active= :last_active');
        $stmtinsrt->execute(array(
            ':memberID' => $_SESSION['memberID'],
            ':username' => $_SESSION['username'],
            ':last_active' => $timestamp                
        ));
        $id = $db->lastInsertId('memberID');
    }

哪里定义了
$db
$db
必须是
PDO
的实例,而不是
PDO语句
$db是在我的配置文件中定义的