2015-05-04 2 views
-1

Вот класс, я написал. При выполнении метода findbyAdNetID ошибок нет. Однако метод не извлекает данные. Тот же код работает, если я помещаю его вне класса и удаляю переменные экземпляра $ всюду. Любая помощь будет оценена по достоинству. Благодарю.класс mysqli с использованием подготовленного оператора, не возвращающего никаких данных.

<?php 

class adscraper_mysqli 
{ 
private $id; 
private $result; 
private $rows; 
private $_mysqli; 
private $statement; 
private $query ="SELECT * FROM scrapelist_master WHERE ad_network_id=?"; 

public function __construct($host = NULL, $username = NULL, $password = NULL, $db = NULL) 
{ 
    $this->host = $host; 
    $this->username = $username; 
    $this->password = $password; 
    $this->db = $db; 
    $this->connect(); 
} 

/** 
* A method to connect to the database 
* 
*/ 
public function connect() 
{ 

    $this->_mysqli = new mysqli ($this->host, $this->username, $this->password, $this->db) 
    or die('There was a problem connecting to the database'); 
} 

/** 
* A method to create prepared statements 
* 
*/ 
public function prepare() 
{ 
    $this->statement = $this->_mysqli->prepare($this->query); 
} 
/* Method to query using prepared statement */ 
public function findbyAdNetID($id){ 
    if (!$this->statement) { 
     $this->prepare(); 
    } 
    $this->statement->bind_param("i", $this->id); 
    $this->statement->execute(); 

    $this->result = $this->statement->get_result(); 

    $this->rows = $this->result->fetch_all(MYSQLI_ASSOC); 
    return $this->rows; 

} 

} // END class 
?> 

`

+0

Вы использовали отладчик, чтобы посмотреть, что происходит и что же значение, возвращаемое каждой из звонки? Я бы начал здесь. – mins

ответ

2

Весь код написан на правильном пути. Единственная проблема, почему у тебя нет ничего в том, что в findbyAdNetID метод ($ ID) является строка:

$this->statement->bind_param("i", $this->id); 

Но вы не установили $ this-> идентификатор. Таким образом, вы должны использовать только $ ID вместо, как

$this->statement->bind_param("i", $id); 

или установить его в начале

$this->id = id; 
+0

Ты босс! огромное спасибо – hvs

Смежные вопросы