2012-07-25 120 views
0

我在使CodeIgniter与SQLite3一起工作时遇到了问题。SQLite3,PDO,Active Record和CodeIgniter

这里是我的database.php中CONFIGS:

$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 */ 

这是当我认为主要会发生什么:

ArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArray

表中有19行,所以我知道这是从这个东西(因为它是回声Array 19次)。但其他呼叫似乎不起作用。 (即)echo $row['id'];

$queryvar_dump生产:

对象(CI_DB_pdo_result)#16(8){[ “conn_id”] =>对象(PDO)#14(0){} [ “result_id”] => object(PDOStatement)#15(1){[“queryString”] => string(28)“SELECT * FROM”tblBuildings“”} [“result_array”] => array(0){ } [“result_object”] => array(0){} [“custom_result_object”] => array(0){} [“current_row”] => int(0) [“num_rows”] => NULL [ row_data“] => NULL}

有表中的数据,但它并没有在这里显示...

回答

3

当你取行,你回来的数组,因此呼应就会产生你可以看到输出。

回声用于原语,数组,你应该使用print_rvar_dump

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