2015-12-10 3 views
0

Я хочу, чтобы все проверяли статус онлайн-пользователя и создали страницу из нескольких источников, которые я прочитал. Я все еще не могу получить желаемые результаты. Возможно, кто-то может посмотреть мой текущий код и сообщить мне, что не так с этой частью? Ниже код является кодом на проверяющие пользователь онлайн статус, и я тоже ток получаю следующее сообщение об ошибке:Проверка состояния пользователя онлайн

Fatal error: Call to undefined method PDOStatement::prepare() in C:\xampp\htdocs\includes\online_status.php on line 11

<?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'); 
     } 





?> 
+0

Где определяется '$ db'? '$ db' должен быть экземпляром' PDO', а не 'PDOStatement'. – mnv

+0

$ db определяется в моих конфигурационных файлах –

ответ

0

В конце концов я получил мой запрос для работы, упростив его совсем немного. Это результат, который сработал для меня:

<?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'); 
    } 

? >

Смежные вопросы