SELECT id, полки из документов, где коллекция_id='ubb'
на
SELECT document_id, полку из документов
где Collection_id='ubb' и late='1'
Первый SQL-запрос генерируется с помощью:
Код: Выделить всё
public function getDocumentsForCollection($sCollectionId) {
$this->db->select('id, shelfmark');
$this->db->where('collection_id', $sCollectionId);
$query = $this->db->get('documents');
if($query->num_rows() > 0) {
return $query->result();
}
else {
return '';
}
}
Код: Выделить всё
public function getDocumentsForCollection($sCollectionId) {
$this->db->select('document_id, shelfmark');
$where = "collection_id=" . $sCollectionId . " AND latest=1";
$this->db->where($where);
$query = $this->db->get('documents_revisions');
if($query->num_rows() > 0) {
return $query->result();
}
else {
return '';
}
}
Как мне выполнить отладку в CodeIgniter, чтобы увидеть сгенерированный SQL-запрос моей функции PHP?
Что не так с моей обновленной функцией PHP?
Я обновил метод до:
Код: Выделить всё
public function getDocumentsForCollection($sCollectionId) {
$this->db->select('document_id, shelfmark');
$where = array("collection_id"=>$sCollectionId,"latest"=>1);
$this->db->where($where);
$query = $this->db->get('documents_revisions');
var_dump($query); exit;
if($query->num_rows() > 0) {
return $query->result();
}
else {
return 'foo';
}
}
object(CI_DB_mysqli_result)#65 (8) { ["conn_id"]=> object(mysqli)#16
(19) { ["affected_rows"]=> int(160) ["client_info"]=> string(79)
"mysqlnd 5.0.12-dev - 20150407 - $Id:
b5c5906d452ec590732a93b051f3827e02749b83 $" ["client_version"]=>
int(50012) ["connect_errno"]=> int(0) ["connect_error"]=> NULL
["errno"]=> int(0) ["error"]=> string(0) "" ["error_list"]=> array(0)
{ } ["field_count"]=> int(2) ["host_info"]=> string(25) «Локальный хост через
UNIX-сокет» ["info"]=> NULL ["insert_id"]=> int(0) ["server_info"]=>
string(23) "5.7.18-0ubuntu0.16.04.1" ["server_version"]=> int(50718)
["stat"]=> string(139) "Uptime: 252001 Тем: 3 Вопросы: 36434
Медленные запросы: 0 Открытий: 501 Очистка таблиц: 1 Открытых таблиц: 313 запросов
в секунду среднее значение: 0,144" ["sqlstate"]=> string(5) "00000"
["protocol_version"]=> int(10) ["thread_id"]=> int(2507)
["warning_count"]=> int(0) } ["result_id"]=> object(mysqli_result)#38
(5) { ["current_field"]=> int(0) ["field_count"]=> int(2)
["lengths"]=> NULL ["num_rows"]=> int(160) ["type"]=> int(0) ["result_array"]=> array(0) { } ["result_object"]=> array(0) { }
["custom_result_object"]=> array(0) { } ["current_row"]=> int(0)
["num_rows"]=> NULL ["row_data"]=> NULL
Affected_rows представляет собой количество документов, которые я получаю, если запускаю SQL-запрос непосредственно в MySQL: ["affected_rows"]=> int(160)
Подробнее здесь: https://stackoverflow.com/questions/478 ... d-no-error
Мобильная версия