[英]Codeigniter: Select based inquiries
我在Codeigniter中遇到了一个奇怪的问题,在该问题中,似乎没有基于SELECT的查询都进入我的sql数据库。 最初我有类似的东西:
public function __construct(){
$this->load->database();
}
public function foo(){
$this->db->query("SELECT * FROM 'table_name'");
}
并在使用print_r检查时返回空结果数组。 因此,我切换到:
public function __construct(){
$this->load->database();
}
public function foo(){
$query = $this->db->get('tracker');
print_r($this->db->last_query());
print_r($query);
}
$ this-> db-> last_query告诉我,即使尝试使用格式正确的语句SELECT * FROM'table_name',结果数组中也没有任何显示。 故障诊断表明:
1.insert语句如“ $ this-> db-> query(” INSERT INTO table VALUES“ ...)仍然可以正常工作。
使用get()发送的SQL查询仍然可以在phpmyadmin的SQL选项卡上使用
sql语句似乎正在访问数据库,因为我返回了mysqli conn_id。
更改浏览器和/或重新启动MAMP不起作用。
如果有人以前曾遇到过此问题,或者看到明显的我想念的东西,我将不胜感激。
先感谢您!
马特
要显示结果,您需要获取->result()
。 例如:
$obj_table = $this->db->query("SELECT * FROM 'table_name'");
print_r($obj_table->result());
您可以参考此文档以获取更多信息: https : //www.codeigniter.com/userguide3/database/results.html
希望回答了您的问题。
使用单引号中的表名删除。
public function foo()
{
$query = $this->db->query("SELECT * FROM table_name");
$result = $query->result_array();
print_r($result);
}
并且为了查看编译的查询使用:
echo $this->db->get_compiled_select();
对于这两种方法,您都需要获取如下record set
方法1:使用result_array
将结果作为array获取。
public function foo(){
$q= $this->db->query("SELECT * FROM 'table_name'");
$result= $q->result_array();
print_r($result);
}
注意:您也可以使用$result= $q->result();
您将获得记录集作为对象。
方法2:
public function foo(){
$query = $this->db->get('tracker');
$result = $query->result_array();
print_r($result );
//print_r($this->db->last_query());
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.