2013-06-17 3 views
1

я запускаю этот простой запрос:Запрос возвращает излишне туповатую структуру. Зачем?

"SELECT url FROM bookmarks" 

, который возвращает массив объектов.

Я тогда вынужден бежать:

public function getUrls() 
{ 
    // runs query above 

    $result = $this->o_database->_pdoQuery('multiple', 'pull_urls'); 
    $i = 0; 
    foreach ($result as $value) { 
     $temp[$i] = $value['url']; 
     $i++; 
    } 
    return $temp; 
} 

упростить структуру в массив адресов.

Есть ли способ получить это из запроса и не обрабатывать его на PHP?

+0

Это потому, что ваш запрос мог бы вернул несколько строк. Поэтому вам нужен результат, чтобы быть массивом массивов. Постскриптум Вы можете просто использовать '$ temp [] = $ value ['url'];' вместо использования '$ i'. –

+0

Я вижу, что вы используете PDO, проверьте PDOStatement :: fetchAll и если он работает с вашей картой. –

+0

@ pure_code.mom: Нет, я просто хотел, чтобы вы исключили переменную '$ i'. –

ответ

4

Если вы используете PDO, вы будете использовать fetchAll() используя PDO::FETCH_COLUMN так:

$urls = $query->fetchAll(PDO::FETCH_COLUMN, 0); 
+1

@ pure_code.mom Обычно, читая руководство, а затем делая маленькие приветственные приложения мира, чтобы узнать, как их применять :) –

+1

@ pure_code.mom Лично я бы счел его более запутанным, если изменение запроса также изменило бы тип результата :) –

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