2011-12-21 3 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

이 또한 내가지고있어 오류는 다음과 같습니다 :이 웹 사이트에 코드의 일부를 내놓고 있었다

치명적인 오류 :에서가 아닌 객체에() 가져 오기 멤버 함수를 호출/집/vhosts/tradingeliteclub.com/subdomains/test/httpdocs/FES/members/classes/52 행의 Mysql.php

여기에서 어디로 가야할 지 모르겠습니다.

시간과 도움에 감사드립니다.

+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 = $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']; 
} 
관련 문제