diff options
Diffstat (limited to 'vendor/fguillot/picodb/lib/PicoDb/LargeObject.php')
-rw-r--r-- | vendor/fguillot/picodb/lib/PicoDb/LargeObject.php | 167 |
1 files changed, 0 insertions, 167 deletions
diff --git a/vendor/fguillot/picodb/lib/PicoDb/LargeObject.php b/vendor/fguillot/picodb/lib/PicoDb/LargeObject.php deleted file mode 100644 index ba5e3b92..00000000 --- a/vendor/fguillot/picodb/lib/PicoDb/LargeObject.php +++ /dev/null @@ -1,167 +0,0 @@ -<?php - -namespace PicoDb; - -use PDO; -use PicoDb\Builder\InsertBuilder; -use PicoDb\Builder\UpdateBuilder; - -/** - * Handle Large Objects (LOBs) - * - * @package PicoDb - * @author Frederic Guillot - */ -class LargeObject extends Table -{ - /** - * Fetch large object as file descriptor - * - * This method is not compatible with Sqlite and Mysql (return a string instead of resource) - * - * @access public - * @param string $column - * @return resource - */ - public function findOneColumnAsStream($column) - { - $this->limit(1); - $this->columns($column); - - $rq = $this->db->getStatementHandler() - ->withSql($this->buildSelectQuery()) - ->withPositionalParams($this->conditionBuilder->getValues()) - ->execute(); - - $rq->bindColumn($column, $fd, PDO::PARAM_LOB); - $rq->fetch(PDO::FETCH_BOUND); - - return $fd; - } - - /** - * Fetch large object as string - * - * @access public - * @param string $column - * @return string - */ - public function findOneColumnAsString($column) - { - $fd = $this->findOneColumnAsStream($column); - - if (is_string($fd)) { - return $fd; - } - - return stream_get_contents($fd); - } - - /** - * Insert large object from stream - * - * @access public - * @param string $blobColumn - * @param resource|string $blobDescriptor - * @param array $data - * @return bool - */ - public function insertFromStream($blobColumn, &$blobDescriptor, array $data = array()) - { - $columns = array_merge(array($blobColumn), array_keys($data)); - $this->db->startTransaction(); - - $result = $this->db->getStatementHandler() - ->withSql(InsertBuilder::getInstance($this->db, $this->conditionBuilder) - ->withTable($this->name) - ->withColumns($columns) - ->build() - ) - ->withNamedParams($data) - ->withLobParam($blobColumn, $blobDescriptor) - ->execute(); - - $this->db->closeTransaction(); - - return $result !== false; - } - - /** - * Insert large object from file - * - * @access public - * @param string $blobColumn - * @param string $filename - * @param array $data - * @return bool - */ - public function insertFromFile($blobColumn, $filename, array $data = array()) - { - $fp = fopen($filename, 'rb'); - $result = $this->insertFromStream($blobColumn, $fp, $data); - fclose($fp); - return $result; - } - - /** - * Insert large object from string - * - * @access public - * @param string $blobColumn - * @param string $blobData - * @param array $data - * @return bool - */ - public function insertFromString($blobColumn, &$blobData, array $data = array()) - { - return $this->insertFromStream($blobColumn, $blobData, $data); - } - - /** - * Update large object from stream - * - * @access public - * @param string $blobColumn - * @param resource $blobDescriptor - * @param array $data - * @return bool - */ - public function updateFromStream($blobColumn, &$blobDescriptor, array $data = array()) - { - $values = array_merge(array_values($data), $this->conditionBuilder->getValues()); - $columns = array_merge(array($blobColumn), array_keys($data)); - - $this->db->startTransaction(); - - $result = $this->db->getStatementHandler() - ->withSql(UpdateBuilder::getInstance($this->db, $this->conditionBuilder) - ->withTable($this->name) - ->withColumns($columns) - ->build() - ) - ->withPositionalParams($values) - ->withLobParam($blobColumn, $blobDescriptor) - ->execute(); - - $this->db->closeTransaction(); - - return $result !== false; - } - - /** - * Update large object from file - * - * @access public - * @param string $blobColumn - * @param string $filename - * @param array $data - * @return bool - */ - public function updateFromFile($blobColumn, $filename, array $data = array()) - { - $fp = fopen($filename, 'r'); - $result = $this->updateFromStream($blobColumn, $fp, $data); - fclose($fp); - return $result; - } -} |