SQLite3,PDO,Active Record和CodeIgniter

时间:2012-07-25 17:54:58

标签: php sqlite pdo codeigniter-2

我在使CodeIgniter与SQLite3一起工作时遇到了问题。

这是我的database.php配置:

$active_group = 'sqlite';
$query_builder = TRUE;

/* SQLite3 config for PDO */

$db['sqlite'] = array (
    'dsn' => 'sqlite:' .FCPATH.'virtTour_original.sqlite',
    'hostname' => '',
    'username' => '',
    'password' => '',
    'dbdriver' => 'pdo',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => TRUE,
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'autoinit' => TRUE,
    'stricton' => FALSE,
    'failover' => array()
);

这是我正在测试的控制器:

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Main extends CI_Controller {

    function __construct()
    {
        parent::__construct();
        $this->load->database(); 
    }

    public function index()
    { 
        $query = $this->db->get('tblBuildings');
        foreach ($query->result_array() as $row)
        {
            echo $row;
        }
    }
}

/* End of file main.php */
/* Location: ./application/controllers/main.php */

当我查看main时会发生这种情况:

  

ArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArray

表格中有19行,所以我知道它从中得到了一些东西(因为它回声Array 19次)。但其他电话似乎不起作用。 (即)echo $row['id'];

var_dump上的$query会产生:

  

对象(CI_DB_pdo_result)#16(8){[“conn_id”] =&gt;对象(PDO)#14(0){}   [ “result_id”] =&GT; object(PDOStatement)#15(1){[“queryString”] =&gt;   string(28)“SELECT * FROM”tblBuildings“”} [“result_array”] =&gt;   array(0){} [“result_object”] =&gt;数组(0){}   [ “custom_result_object”] =&GT; array(0){} [“current_row”] =&gt; INT(0)   [ “NUM_ROWS”] =&GT; NULL [“row_data”] =&gt; NULL}

表格中有数据,但此处未显示...

1 个答案:

答案 0 :(得分:3)

当您获取行时,您将返回一个数组,因此回显它将产生您看到的输出。

echo用于基元,对于应使用print_rvar_dump的数组:

foreach ($query->result_array() as $row)
    {
        print_r($row);
    }