2011-12-21 4 views
0

О, я начинаю использовать mysqli, я немного смущен тем, как он работает.mysqli fetch_object() throwing error

Так у меня есть функция:

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/Mysql.php в строке 52

Я не уверен, куда идти отсюда.

Спасибо за ваше время и помощь.

+1

Добро пожаловать в переполнение стека! Вы не выполняете проверку ошибок в своем запросе, поэтому неудивительно, что ваш код ломается, когда он терпит неудачу. Сделайте правильную проверку после каждого вызова mysql_query(). В противном случае ваш скрипт будет разорван, если запрос завершится с ошибкой. Как это сделать, описано в [manual on 'mysql_query()'] (http://php.net/mysql_query) или в этом [справочном вопросе.] (Http://stackoverflow.com/questions/6198104/reference -what-is-perfect-code-sample-using-the-mysql-extension) –

+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']; 
}