0

我在让 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 时发生的情况:

ArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArray

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

A var_dumpon$query产生:

object(CI_DB_pdo_result)#16 (8) { ["conn_id"]=> object(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 }

表中有数据,但这里没有显示...

4

1 回答 1

3

当你获取行时,你会得到一个数组,所以回显它会产生你看到的输出。

echo 用于原语,用于您应该使用的数组print_rvar_dump

foreach ($query->result_array() as $row)
    {
        print_r($row);
    }
于 2012-07-26T09:05:12.827 回答