2017-01-23 20 views
-1

私は新しいPDOを返すconnect関数を持つDBクラスを持っています。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

そのない重複thatsのない私の質問 – D12L12

+0

'$クエリ= $ active_check->( "ユーザーからのWHERE名= '$ユーザ名' SELECT *")を作成。 $ query-> execute(); '? – Rasclatt

+0

[**あなたのクラスはあなたのデータベースサーバーを殺します**](https://phpdelusions.net/pdo/common_mistakes) –

答えて

0
$active_check = self::connect(); 
$stmt = $active_check->prepare("SELECT * FROM users WHERE username='$username'"); 
$stmt->execute(); 
関連する問題