【问题标题】:PHP foreach not working when iterating query result迭代查询结果时PHP foreach不起作用
【发布时间】:2017-05-24 18:52:32
【问题描述】:

当我尝试获取特定 id 并且不让我保存表单时,会引发数组到字符串的转换。我只需要'intervaloHorario'的ID来自动填充一个字段,但我不知道我做错了什么。请帮我一把。

错误

严重性:4096

消息:stdClass 类的对象无法转换为字符串

模型函数

    public function get_idintervalo($idCitas) {

            $query = $this->db->query('SELECT intervaloshorarios.idIntervaloHorario FROM intervaloshorarios INNER JOIN citas '
                    . 'ON intervaloshorarios.idIntervaloHorario = citas.idIntervaloHorario '
                    . 'WHERE citas.idCitas = ' . $idCitas . ';');

            return $query->result();
}

控制器

$query = $this->Intervalos_Model->get_idintervalo($idCitas);


        if ($crud->getState() == "add") {
//It's wroking fine getting this
            $crud->change_field_type('idCitas', 'hidden', $idCitas);

foreach ($query as $key) {
            //Is not working fine (throws array to string conversion)
            $crud->change_field_type('idIntervaloHorario', 'hidden', $key);
        }

【问题讨论】:

  • 我想你可以做一个gettype($query) 来查看$query 变量的类型。

标签: php mysql


【解决方案1】:

假设您正在使用 CodeIgnitor 框架。你应该写

foreach ($query as $key) {
    //Is not working fine (throws array to string conversion)
    $crud->change_field_type('idIntervaloHorario', 'hidden', $key->idIntervaloHorario);
}

因为 $query 将查询结果集存储在对象中,而 $key 在这里是一个对象。 更多内容见手册https://www.codeigniter.com/userguide2/database/results.html

【讨论】:

  • 非常感谢!!我是新手,我一直在寻找一个可行的答案!你是一个裂缝!
【解决方案2】:

这是 OpenCart 吗? 如果是这样使用:

return $query->rows;

获取返回行的数组。

【讨论】:

  • 感谢您的回答!感谢@simurgrai,我得到了我想要的东西
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-20
  • 1970-01-01
相关资源
最近更新 更多