我的控制器中有以下代码:
$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用户指南中找到针对此类案例的具体解决方案/指南,这就是我在这里问的原因。
答案 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 是其名称 您希望在查询中输出的字段。