首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何编写自定义查询codeigniter

问如何编写自定义查询codeigniter
EN

Stack Overflow用户
提问于 2019-02-04 14:59:22
回答 3查看 4.1K关注 0票数 2

我有以下查询和它在MySQL中的工作

代码语言:javascript
复制
SELECT * FROM usr_booking 
WHERE shop_id ='1' 
AND services_dates='2019-01-02' 
AND (start_time BETWEEN '10:00' AND '11:00' OR end_time BETWEEN '10:00' AND '11:00');

但是如果我以Codeigniter的方式转换,然后查询不工作,我如何在Codeigniter中编写这个查询?我尝试使用以下代码,但显示"Database Error“

代码语言:javascript
复制
$query=$this->db->query("SELECT * FROM usr_booking 
WHERE shop_id ='1' 
AND services_dates='2019-01-02'
AND (start_time BETWEEN '10:00' AND '11:00' OR end_time BETWEEN '10:00' AND '11:00')");

我哪里错了?提前感谢

EN

回答 3

Stack Overflow用户

发布于 2019-02-04 15:13:18

您可以参考有关配置项查询构建器的此page。

根据您的问题,您正在尝试将MySQL查询转换为CI查询构建器,对吗?让我们试一试,根据您的代码,您正在选择一个带条件的数据,因此它看起来如下所示:

代码语言:javascript
复制
        $this->db->select("*");
        $this->db->from("usr_booking ");
        $this->db->where("shop_id",1);
        $this->db->where("services_dates",'2019-01-02');
        $this->db->where("start_time" >= '10:00');
        $this->db->where("start_time" <= '11:00');
        $this->db->or_where("end_time" >= '10:00');
        $this->db->where("end_time" <= '11:00');
        $query = $this->db->get();

        return $query->result();

基本上,这将返回对象类型的数据。如果要将其转换为数组,请使用result_array()。

如果在application/config下检查database.php文件时出现错误,则必须设置默认数据库配置。你可以参考here.

备注: Don't forget to load your database as always or set it on Don't forget to load your database as always or set it on

让我看看有没有改善。

票数 2
EN

Stack Overflow用户

发布于 2019-02-04 16:01:12

在Codeigniter中编写您自己的自定义查询很容易,您可以尝试这样做。在模型中创建一个函数,如下所示

代码语言:javascript
复制
function customQuery()
{
    $query = $this->db->query("SELECT * FROM usr_booking WHERE shop_id ='1' AND services_dates='2019-01-02' AND (start_time BETWEEN '10:00' AND '11:00' OR end_time BETWEEN '10:00' AND '11:00')"); 
    return $query->result_array();
}

在控制器中加载这个模型,现在像这样从你的控制器中调用这个函数!

代码语言:javascript
复制
$this->customModel->customQuery();

这将返回结果数组。谢谢

票数 0
EN

Stack Overflow用户

发布于 2019-02-05 14:02:59

在模型中,创建一个函数

代码语言:javascript
复制
function customData($str)
{
   $query = $this->db->query($str); 
   return $query->result_array();
}

在您的控制器中加载相同的模型并调用上面的方法

代码语言:javascript
复制
$querySTR = "SELECT * FROM usr_booking 
WHERE shop_id ='1' 
AND services_dates='2019-01-02' 
AND (start_time BETWEEN '10:00' AND '11:00' OR end_time BETWEEN '10:00' AND '11:00')";

$result = $this->model_name->customData($querySTR);
if($result){
 //Write your code
} else {
  echo 'Error Code: '.$this->db->_error_number().' -- Error Message: '.$this->db->_error_message();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54511402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档