2012-01-20 4 views
2
$query = "select id, xmldata from xmlcontent where id = '586655' OR id = '671347'" 

$db = new PDO(...); 
$stmt = $db->prepare($query); 
$stmt->execute(); 
$result = $stmt->fetchAll(PDO::FETCH_ASSOC); 

var_dump($result); 

выход:PHP: п.д.о. чтения CLOB без привязки

... 
["XMLDATA"]=> resource(33) of type (stream) 
... 

, как я могу читать это? я стараюсь:

stream_get_contents() 

но ничего

с

stream_get_contents() 

иногда читать некоторые Лил текст, я хотел бы использовать и общий код из всех SQL-s без привязки Params :(

+1

Что произойдет, если вы назовете ['stream_get_meta_data'] (http://us2.php.net/manual/en/function.stream-get-meta-data.php) ресурс? Вы должны получить массив с полезной информацией. – Charles

+0

я постараюсь в понедельник, когда я вернусь на работу спасибо :) – ZiTAL

+0

массив ( [stream_type] => Pdo_Oci блоб поток [режим] => г + б [unread_bytes] => 0 [доступной для поиска] = > [timed_out] => [заблокировано] => 1 [eof] => ) @Charles – ZiTAL

ответ

0

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

Для последней версии, составленный из источника PHP на сервере Ubuntu я просто использовать ленивую нагрузку в ActiveRecord классе:

public function getFullText() 
{ 
    if (is_resource($this->fulltext)) { 
     $this->fulltext = stream_get_contents($this->fulltext); 
    } 
    return $this->fulltext; 
} 

Где fulltext является CLOB.

+0

PDO_OCI устарел, и я могу скомпилировать его, чтобы исследовать его :( – ZiTAL

+0

Это устарело? Я думал, что он просто был оставлен как автономное расширение из-за встроенной версии в сам PHP? – UnstableFractal

+0

там не является расширением oracle pdo для php в репозиториях – ZiTAL

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