Revision 2257 | Blame | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed
<?php/*** CodeIgniter** An open source application development framework for PHP** This content is released under the MIT License (MIT)** Copyright (c) 2014 - 2019, British Columbia Institute of Technology** Permission is hereby granted, free of charge, to any person obtaining a copy* of this software and associated documentation files (the "Software"), to deal* in the Software without restriction, including without limitation the rights* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell* copies of the Software, and to permit persons to whom the Software is* furnished to do so, subject to the following conditions:** The above copyright notice and this permission notice shall be included in* all copies or substantial portions of the Software.** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN* THE SOFTWARE.** @package CodeIgniter* @author EllisLab Dev Team* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)* @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/)* @license https://opensource.org/licenses/MIT MIT License* @link https://codeigniter.com* @since Version 3.0.0* @filesource*/defined('BASEPATH') OR exit('No direct script access allowed');/*** SQLite3 Result Class** This class extends the parent result class: CI_DB_result** @category Database* @author Andrey Andreev* @link https://codeigniter.com/user_guide/database/*/class CI_DB_sqlite3_result extends CI_DB_result {/*** Number of fields in the result set** @return int*/public function num_fields(){return $this->result_id->numColumns();}// --------------------------------------------------------------------/*** Fetch Field Names** Generates an array of column names** @return array*/public function list_fields(){$field_names = array();for ($i = 0, $c = $this->num_fields(); $i < $c; $i++){$field_names[] = $this->result_id->columnName($i);}return $field_names;}// --------------------------------------------------------------------/*** Field data** Generates an array of objects containing field meta-data** @return array*/public function field_data(){static $data_types = array(SQLITE3_INTEGER => 'integer',SQLITE3_FLOAT => 'float',SQLITE3_TEXT => 'text',SQLITE3_BLOB => 'blob',SQLITE3_NULL => 'null');$retval = array();for ($i = 0, $c = $this->num_fields(); $i < $c; $i++){$retval[$i] = new stdClass();$retval[$i]->name = $this->result_id->columnName($i);$type = $this->result_id->columnType($i);$retval[$i]->type = isset($data_types[$type]) ? $data_types[$type] : $type;$retval[$i]->max_length = NULL;}return $retval;}// --------------------------------------------------------------------/*** Free the result** @return void*/public function free_result(){if (is_object($this->result_id)){$this->result_id->finalize();$this->result_id = NULL;}}// --------------------------------------------------------------------/*** Result - associative array** Returns the result set as an array** @return array*/protected function _fetch_assoc(){return $this->result_id->fetchArray(SQLITE3_ASSOC);}// --------------------------------------------------------------------/*** Result - object** Returns the result set as an object** @param string $class_name* @return object*/protected function _fetch_object($class_name = 'stdClass'){// No native support for fetching rows as objectsif (($row = $this->result_id->fetchArray(SQLITE3_ASSOC)) === FALSE){return FALSE;}elseif ($class_name === 'stdClass'){return (object) $row;}$class_name = new $class_name();foreach (array_keys($row) as $key){$class_name->$key = $row[$key];}return $class_name;}// --------------------------------------------------------------------/*** Data Seek** Moves the internal pointer to the desired offset. We call* this internally before fetching results to make sure the* result set starts at zero.** @param int $n (ignored)* @return array*/public function data_seek($n = 0){// Only resetting to the start of the result set is supportedreturn ($n > 0) ? FALSE : $this->result_id->reset();}}