Класс не может вернуть объект

я пытаюсь создать некоторый класс и метод на PHP, и некоторая функция является хорошим выводом, но в последнем выводе я не могу выбросить переменную, это мой класс.

здесь я называю класс,

$fields = array('nik');
$query = new Query();
$query
->select($fields)
->from('data_asset_hw')
->orderby('nik','DESC')
->execute('fetchAll');

print json_encode($query);

выберите, из и заказать хорошо. Но я не могу получить вывод из последней функции (выполнить), просто нулевой объект, который я нашел {},

Смотрите мой класс ниже, по методу execute(),
если я вручную печатаю объект запроса, и на выходе все нормально. Но если я использую вернуть это $query, Я нашел выход null, Может я что-то пропустил?

<?php
Class Query
{
private $query;
function __construct(){
$this->query = "";
}

function select($fields=array()){
if(!is_array($fields)){
$sql = sprintf("SELECT %s ",$fields);
$this->query .= $sql;
return $this;
}else{
$fields = implode("`, `", $fields);
$sql = sprintf("SELECT `%s` ", $fields);
$this->query .= $sql;
return $this;
}
}

function from($table){
$table = trim(strtolower(stripslashes($table)));
$sql = sprintf("FROM %s ", $table);
$this->query .= $sql;
return $this;
}

function orderby($field,$order){
$sql = sprintf("ORDER BY %s %s", $field,$order);
$this->query .= $sql;
return $this;
}

function where($command){
$sql = sprintf("WHERE %s ", $command);
$this->query .= $sql;
return $this;
}

function execute($fetch){
try{
$database = DatabaseFactory::getFactory()->getConnection();
(string)$this->query;
$query = $database->prepare($this->query);

if(!$query){
throw new Exception('The SQL statement can not be prepared!');
}

$execute = $query->execute();
if(!$execute){
throw new Exception('The PDO statement can not be executed!');
}
// output is normally
print_r($query->$fetch());
// cannot return object
return $query->$fetch();
} catch (PDOException $pdoException) {
echo '<pre>' . print_r($pdoException, true) . '</pre>';
exit();
} catch (Exception $exception) {
echo '<pre>' . print_r($exception, true) . '</pre>';
exit();
}
}
}

я обнаружил, что моя ошибка просто добавить публичный вывод $; и вернуть $ this-> output = $ query -> $ fetch (). и вата ….. я уже сделал.
Спасибо
Извините за мой плохой английский.

-2

Решение

добавить публичный вывод $;

и использовать это с
$ this-> output = $ query-> fetch ();

потому что просто публика может показываться на странице.

Спасибо

0

Другие решения

определите свой объект как

$query = new query($mysqli);
-2

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector