具有PDO功能的类/无法调用类中的另一个功能

问题描述:

我有一个带有连接功能的DB类,它返回一个新的PDO。具有PDO功能的类/无法调用类中的另一个功能

在另一页我宣布$db = DB::connect();并做所有我的计算。

我在主页上传递了一个叫echo DB::startSession($username);的函数。

我现在使用startSession($ username)函数启动一个pdo并执行查询。虽然每当我使用类似$connect = self::connect();我得到一个错误,同样与$connect = $this->connect();

所有代码

public static function connect(){ 

     $dsn = 'mysql:dbname=chatsite;host=127.0.0.1'; 
     $user = 'root'; 
     $password = 'root'; 

     try { 
      $dbh = new PDO($dsn, $user, $password); 
      return $dbh; 
     } catch (PDOException $e) { 
      echo 'Connection failed: ' . $e->getMessage(); 
     } 
    } 



public static function startSession($username){ 

     //return "user: " . $username; 
     $active_check = self::connect(); 
     $active_check->prepare("SELECT * FROM users WHERE username='$username'"); 
     $active_check->execute(); 

     return 'test'; 

而这是其他页面

echo DB::startSession($username); 

上我得到的错误是未捕获的错误:调用未定义的方法PDO :: execute(),这与PDO未在第一行中激活有关。

+0

它不是一个重复的那不是我的问题 – D12L12

+0

'$查询= $ active_check->准备( “SELECT * FROM用户其中username = $用户名”“); $查询 - >执行();'? – Rasclatt

+0

[**你的班级将杀死你的数据库服务器。**](https://phpdelusions.net/pdo/common_mistakes) –

$active_check = self::connect(); 
$stmt = $active_check->prepare("SELECT * FROM users WHERE username='$username'"); 
$stmt->execute();