【问题标题】:Codeigniter - query does not execute from a specific controllerCodeigniter - 查询不会从特定控制器执行
【发布时间】:2016-07-25 21:03:04
【问题描述】:

我遇到了这个问题:

我在运行选择查询的模型中有一个函数:我从控制器 A(不是真实姓名)调用它。当我从控制器 B 调用相同的方法时,PHP 脚本会在查询执行时停止。

这个函数接收一个数字或一个数组作为参数。我已经在模型中设置了参数的值,以确保我不会从控制器 B 发送错误的数据,并且它一直在发生。

查询:

$arrConversas = $this->db->where_in('codigo_conversa', $codigo_conversa)
                     ->group_by(['codigo_origem','codigo_destino',
                                 'tipo_origem', 'tipo_destino'])
                     ->get('conversa_mensagem')->result();

我认为代码没有错,因为它从控制器 A 正常运行。

我做错了什么?

编辑:

谢谢你们。问题是在此查询之前运行的程序,我尝试刷新连接并清理缓存并且问题仍然存在,然后我使用 $this->db->reconnect(); 。不是最佳解决方案,但不会每天都使用此操作。

我在调试时看到错误:“命令不同步;您现在无法运行此命令”。

再次感谢!

【问题讨论】:

  • 你是在控制器 B 中加载模型吗?
  • 使用$this->db->last_query(); 看看你上次执行的查询是什么
  • 可能有两件事导致问题,第一,您没有在控制器 A 中加载模型。第二,检查您的控制器和模型是否将其作为构造器 function __construct() { parent::__construct(); }
  • 您是否遇到任何错误?如果没有,请检查日志,没有它可能是任何事情。
  • 您好,您可能想自己添加这个问题的答案并接受它,所以很明显问题已经解决了! :)

标签: php codeigniter model-view-controller


【解决方案1】:

我认为你没有写 $this->load->database();在模型的构造函数中。

【讨论】:

    【解决方案2】:

    问题是在此查询之前运行的程序,然后我使用了$this->db->reconnect();,它成功了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-22
      • 2015-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多