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

これは、メインを表示すると次のようになります。

アレイアレイアレイアレイアレイアレイアレイアレイアレイアレイアレイアレイアレイアレイアレイアレイアレイアレイアレイ

テーブルには 19 行あるので、これから何かを得ていることがわかります ( Array19 回エコーするため)。しかし、他の呼び出しは機能していないようです。(すなわち)echo $row['id'];

var_dump上の Aは次を$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

行をフェッチすると、配列が返されるため、それをエコーすると、表示される出力が生成されます。

print_recho は、プリミティブ、または使用する必要がある配列に使用されますvar_dump

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