我有以下查询及其在MySQL中的工作
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中编写此查询? 我尝试使用以下代码,但显示“数据库错误”
$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')");
我哪里错了?预先感谢
答案 0 :(得分:2)
您可以在CI查询构建器中参考此page。
根据您的问题,您正在尝试将MySQL查询转换为CI查询生成器,对吗?让我们尝试一下,根据您的代码,您正在选择有条件的数据,因此它看起来像这样:
$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()
。
如果遇到错误Database Error
,请检查 application / config 下的 database.php 文件,您必须设置默认数据库配置< / em>。您可以参考here.
注意::Don't forget to load your database as always or set it on
autoload.php
让我看看是否有改善。
答案 1 :(得分:0)
在Codeigniter中编写您自己的自定义查询很容易,您可以尝试一下。 像这样在模型内部创建一个函数
{
"data": {
"markdownRemark": {
"frontmatter": {
"title": "I AM CAPITALIZED"
}
}
}
}
将此模型加载到控制器中,然后像这样从您的控制器中调用此函数!
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();
}
这将返回结果数组。 谢谢
答案 2 :(得分:0)
在模型中,创建一个函数
function customData($str)
{
$query = $this->db->query($str);
return $query->result_array();
}
在您的控制器中加载相同的模型并调用上述方法
$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();
}