2011-07-08 7 views
2

は、私は私のクラス私のクラスでのPDO PHPを使用

<?php 
class User 
{ 
    private $db; 
    public function __construct($host, $user, $pass, $db) 
    { 
    try 
    { 
     $this->db = new PDO("mysql:host=$host;dbname=$db", $user, $pass); 

    } 
    catch (Exception $e) 
    { 
     die('Error : ' . $e->getMessage()); 
    } 
    } 
    public function modUser($uid, $email) 
    { 
    $query = $this->db->exec("UPDATE Users SET Email =:email WHERE Id_User =:uid"); 
     $query->bindValue(':email', $email, PDO::PARAM_STR); 
    } 
} 
?> 

でのPDO PHPを使用します

:私はエラーを取得するデータベースを接続し、

$user = new User($host, $user, $pass, $db); 

を書き込むファイル

<b>Warning</b>: PDO::__construct() expects parameter 2 to be string, object given in <b>C:\wamp\www\new_template-latest\new_template\classes\class.User.php</b> on line <b>13</b><br /> 
<br /> 
<b>Fatal error</b>: Call to a member function exec() on a non-object in <b>C:\wamp\www\new_template-latest\new_template\classes\class.User.php</b> on line <b>140</b><br /> 
+0

設定ファイルを含めてください。 PHPは設定ファイルからそれを読み込み、文字列ではなく整数として入力している可能性があります。 – Sean

+0

彼のコードから、 'new User'オブジェクトが' $ user'に格納されているようです。 – cspray

+0

設定ファイルを使用するとき、出力する行を次の行に追加すれば? 'var_dump($ pass); exit; ' –

答えて

5

あなたはPDOパラメータにnew Userオブジェクトを代入しようとしています。 Userオブジェクトの新しい変数名、または$userデータベース構成変数の新しい名前を選択する必要があります。

+0

正確に変数名に問題があります。変数名を変更します。すべて – bilal

2

変数$userをそのままコンストラクタに渡します。コンストラクタは現在new Userオブジェクトです。ユーザー名文字列は、別の名前の変数に格納する必要があります。

+0

ありがとうございました。それは問題です – bilal

+0

@bilalあなたは答えの1つを受け入れたものとしてマークすることを検討する必要があります –

関連する問題