当我使用codeigniter时,我无法在php中使用我的查询。我认为这一切都还可以,但我的代码不起作用。这有什么不对?
我需要面对两个参数。
我有一张桌子,我需要colonn3
楷模:
function get_colonn3($data){
$this->db->select("table.colonn3");
$this->db->where("table.colonn3",$data);
return $this->db->get("table.colonn3")->result_array();
控制器:
$colonn3_exsist = $this->my_model->get_colonn3($data)
if($colonn3_exsist):
echo "ok";
endif;
从get()中删除table.colon3,也许它会起作用
return $this->db->get()->result_array();
我相信是因为你将表名传递给where语句而且它需要一个列。
CodeIgniter where documentation
function get_colonn3($data) {
$this->db->select("table.colonn3");
$this->db->where("colonn3", $data);
return $this->db->get("table")->result_array();
}
它们还允许您将数组传递给where参数:
function get_colonn3($data) {
$this->db->select("table.colonn3");
$this->db->where([
"colonn3" => $data
]);
return $this->db->get("table")->result_array();
}
CI还允许您链接DB函数,如下所示:
function get_colonn3($data) {
$this->db->select("table.colonn3")
->where([
"colonn3" => $data
]);
return $this->db->get("table")->result_array();
}
试试这个:
//模型
function get_colonn3($data){
$this->db->select("colonn3");
$this->db->where("colonn3",$data);
return $this->db->get("table")->result_array();
//控制器
$colonn3_exsist = $this->my_model->get_colonn3($data)
if($colonn3_exsist>0){
echo"ok";
}
您正以错误的方式将值传递给WHERE
。您必须传递数组中的值而不传递表名。
如果要从Database中有多个参数进行比较,则必须像这样在WHERE
子句中传递数组:
function get_colonn3($para1,$para2){
$this->db->select("table.colonn3");
$this->db->where(['columnname1' => $para1, 'columnname2' => $para2]);
return $this->db->get("table.colonn3")->result_array();
}
如果您只有一个参数可供比较,那么您可以使用:
function get_colonn3($para1){
$this->db->select("table.colonn3");
$this->db->where('columnname1',$para1);
return $this->db->get("table.colonn3")->result_array();
}
模型
function get_colonn3($data){
return $this->db->select("table.colonn3 as col3")->from('table')->where(['table.colonn3' => $data])->get()->row()->col3;
}
调节器
$colonn3 = $this->my_model->get_colonn3($data)
if(!empty($colonn3)):
echo "ok";
endif;