SQLite3 запрос не выполняется, ошибка не

SQLite3 запрос не выполняется, ошибка не возникает.
Вставить данные в базу данных нормально, но не получает данные, в чем моя вина?

 protected function db2Array($data){
$arr = array();
while ($row = $data -> fetchArray(\SQLITE3_ASSOC)){
$arr[] = $row;
}
return $arr;
}

function getNews() {
try{
$sql = "SELECT msgs.id as id, title, category.name as category, description, source, datetime
FROM msgs, category
WHERE category.id = msgs.category
ORDER BY msgs.id DESC";
$res = $this->_db -> query($sql);
if(!is_object($res)){
throw new Exception ($this->_db -> LastErrorMsg());
return $this->db2Array($res);
}
} catch (Exception $exs){
//$exs -> getMessage();
return FALSE;
}
}

-2

Решение

Отступ кода немного делает его более понятным;

if(!is_object($res)){
throw new Exception ($this->_db -> LastErrorMsg());
return $this->db2Array($res);  // This will never execute due to the throw
}

Если есть ошибка, вы генерируете исключение и затем (в коде, который не будет выполняться) возвращают результат. Если ошибки нет, вы ничего не возвращаете.

Вы должны переместить возврат за пределы if объем;

if(!is_object($res)) {
throw new Exception ($this->_db -> LastErrorMsg());
}
return $this->db2Array($res);

Теперь код сгенерирует исключение при ошибке и в противном случае вернет результат.

1

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

Других решений пока нет …

По вопросам рекламы [email protected]