![](/img/trans.png)
[英]get the result of select query with different database in codeigniter
[英]select all and some attribute from a table get different result in codeigniter
我已经尝试通过模式选择所有属性从codeigniter中的sql查询中获取结果,但是它返回PHP错误,但是当我在给出正确答案时指定了一些属性,但是查询时间太长而无法编写时。
我尝试过的2种模式选择会给出不同的结果。
第一
class model_kemiskinan扩展CI_Model {
..... //构造函数在这里
function get_kemiskinan_provinsi(){
$this->tahun = "2011";
$this->kodeProv = "31";
$this->query = "select * from kemiskinan where id_provinsi = ".$this->kodeProv." and tahun = ".$this->tahun;
$this->result = $this->db->query($this->query);
return $this->result->result();
}
然后控制器通过
public function testquery(){
$this->load->model('model_kemiskinan');
$data['hasil'] = $this->model_kemiskinan->get_kemiskinan_provinsi();
$data['main_content'] = 'test';
$this->load->view('template', $data);
}
并在视图“测试”中通过以下代码对其进行响应:
if(is_array($hasil)){
foreach ($hasil as $baris ) {
echo $baris->tahun;
echo $baris->id_provinsi;
echo "<br/>";
}
结果是这样
A PHP Error was encountered
Severity: Notice
Message: Undefined property: stdClass::$tahun
第二
但是,如果我更改如下所示的选择模式:
$this->query = "select tahun, id_provinsi from kemiskinan where id_provinsi = ".$this->kodeProv." and tahun = ".$this->tahun;
它将正常工作
关于全选模式有什么解决方案吗?
-感谢之前-
就像文档( http://ellislab.com/codeigniter/user-guide/database/examples.html )所示:
$query = $this->db->query('SELECT name, title, email FROM my_table');
foreach ($query->result() as $row)
{
echo $row->title;
echo $row->name;
echo $row->email;
}
echo 'Total Results: ' . $query->num_rows();
通过调用result()只会得到一行,因此您需要通过foreach来调用它:
function get_kemiskinan_provinsi(){
$this->tahun = "2011";
$this->kodeProv = "31";
$this->query = "select * from kemiskinan where id_provinsi = ".$this->kodeProv." and tahun = ".$this->tahun;
$this->result = $this->db->query($this->query);
$res = array();
foreach ($this->result->result() as $row)
{
$res[] = $row;
}
return $res;
}
请注意结果对象中的字段区分大小写! 如果您的数据库中有一个名为“ Tahun”的字段,则“ select tahun ...”将在mysql中工作,并将为您提供一个对象,您可以在其中访问$ res-> tahun。
如果您执行“ select * ....”,则只能按以下方式访问它:$ res-> Tahun(带大写字母T)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.