我在使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}
表格中有数据,但此处未显示...
答案 0 :(得分:3)
当您获取行时,您将返回一个数组,因此回显它将产生您看到的输出。
echo用于基元,对于应使用print_r
或var_dump
的数组:
foreach ($query->result_array() as $row)
{
print_r($row);
}