2011-12-21 18 views
0

私はmysqliを使用し始めていますが、どういう仕組みか少し混乱しています。mysqli fetch_object()エラーを投げる

だから私は機能を持っている:

function verify_payment_date() 
{ 
    $today = date("Y-m-d"); 

    $email = $_SESSION['email']; 

    $result = $this->conn->query("SELECT * FROM user WHERE email=$email"); 

    while ($row = $result->fetch_object()) 
    { 
     $next_payment_date = $row['next_payment_date']; 
    } 
} 

は私の接続を設定するには、私は同じクラスでこれを行う:私は完全だから

private $conn; 

function __construct() 
{ 
    $this->conn = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME) or 
        die('There was a problem connecting to the database.'); 
} 

誰も私にここに救いの手を与えることができます失われた私はこのウェブサイト上のコードの一部を基づかた: http://www.willfitch.com/mysqli-tutorial.html

また、私は取得していますエラーは次のとおりです。

致命的なエラー:フェッチメンバ関数の呼び出し()非オブジェクト上での/ home/vhosts/tradingeliteclub.com/subdomains/test/httpdocs/FES/members/classes/Mysql.php on line 52

私はここからどこに行くのかは分かりません。

ご協力いただきありがとうございます。

+1

ようこそスタックオーバーフロー!あなたはあなたの質問で何らかのエラーチェックをしているわけではないので、失敗したときにあなたのコードが壊れるのは不思議ではありません。それぞれの 'mysql_query()'コールの後に適切なチェックを行います。そうしないと、クエリが失敗した場合にスクリプトが中断されます。どのようにするかは、[mysql_query() '](http://php.net/mysql_query)またはこの[参照質問](http://stackoverflow.com/questions/6198104/reference)に記載されています。 –

+0

電子メールアドレスを引用符で囲んでください: '$ this-> conn-> query(" SELECT * FROM user WHERE email = '$ email - これは完全なコードサンプルです。 '')); '。 –

答えて

1

$resultはmysql resultではありません。クエリが失敗しました。代わりに

$result = $this->conn->query("SELECT * FROM user WHERE email='$email'"); 
// apostrophes 

を試してください。

$this->conn->queryが成功した場合はresource、失敗した場合はfalseが返されます。このようなエラーを避けることができます

if($result) while ($row = $result->fetch_object()) 
{ 
    $next_payment_date = $row['next_payment_date']; 
} 
関連する問題