如何在CodeIgniter中将查询结果对象转换为字符串

时间:2014-09-30 11:59:14

标签: php mysql codeigniter

我的控制器中有以下代码:

    $sql = "SELECT MAX(roll) FROM student WHERE department = '".$this->db->escape_str($sdata['department'])."'";
    $query = $this->db->query($sql);

没有错。我得到了预期的价值。

但是,当我尝试在其他地方使用此值作为字符串时,如下所示:

   $rolltext = substr($query->result(), 9);
   print_r($rolltext);
   die();

然后在localhost中运行应用程序,我收到以下错误:

    A PHP Error was encountered

    Severity: Warning

    Message: substr() expects parameter 1 to be string, array given

我知道变量$ rolltext以数组的形式获取查询结果,而不是字符串,这在substr()函数的语法方面是不正确的。这就是我收到这个错误的原因。我的问题是:如何将此查询结果转换为字符串并在后续行中执行我的substr()操作?我没有在CodeIgniter用户指南中找到针对此类案例的具体解决方案/指南,这就是我在这里问的原因。

1 个答案:

答案 0 :(得分:4)

尝试以下方法:

 $sql = "SELECT MAX(roll) as maxroll FROM student WHERE department = '".$this->db->escape_str($sdata['department'])."'";
 $query = $this->db->query($sql);
 //$result = $query->result();  //  returns the query result as an array of objects
 $result = $query->row(); // returns a single result row
 $rolltext = substr( $result->maxroll, 9);
  

注意:

     

从查询结果集访问值的语法是:

     

$ result->字段名;

     

其中 $ result 是结果集,而 fieldname 是其名称   您希望在查询中输出的字段。