как вернуть текущий объект? - PullRequest
0 голосов
/ 11 апреля 2010

в коде воспламенителя вы можете набрать:

$query = $this->db->query("YOUR QUERY");

foreach ($query->result() as $row)
{
   echo $row->title;
   echo $row->name;
   echo $row->body;
}

Я полагаю, что метод запроса возвращает объект, частью которого он является. я прав?

если я, как вы печатаете строку, где он возвращает объект?

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

public function query($sql) {
    // some db logic here with the $sql and saves the values to the properties (title, name and body)

    return X
}

другими словами, каким должен быть Х?

Ответы [ 2 ]

2 голосов
/ 11 апреля 2010

Я не читал исходный код CodeIgniter, но было бы разумно предположить, что $query - это какой-то класс, представляющий результат в БД, поэтому вполне может быть return $this;

Это также может быть что-то вроде: return new Db_ResultSet($data) или подобное.

1 голос
/ 11 апреля 2010

Эта функция находится в /system/database/DB_driver.php:244

.

В случае успешного запроса он возвращает новый объект результата db для драйвера базы данных (вероятно), установленного в конфигурации базы данных вашего приложения.

ex: CI_DB_mysql_result (находится в /system/database/drivers/mysql/mysql_result.php);

другими словами, каким должен быть Х?

$driver         = $this->load_rdriver();
$RES            = new $driver();
$RES->conn_id   = $this->conn_id;
$RES->result_id = $this->result_id;

из DB_driver.php: 366

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...