繁体   English   中英

Codeigniter:选择基于查询

[英]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“ ...)仍然可以正常工作。

  1. 使用get()发送的SQL查询仍然可以在phpmyadmin的SQL选项卡上使用

  2. sql语句似乎正在访问数据库,因为我返回了mysqli conn_id。

  3. 更改浏览器和/或重新启动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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM