我正在爲我的數據庫應用程序使用codeigniter。我不確定是否可以在codeigniter數據庫類中使用get_where進行自定義查詢。如何使用在Codeigniter中使用自定義查詢時的位置
這是我的查詢
$this->db->query("select model, varient, (select color from mtbl_colors where mtbl_colors.colorid=mtbl_vehicles.colorid) as color from mtbl_vehicles");
現在,如果我想爲
function getVehicles($model='',$varient='')
{
if($model!='')
{
$q=$this->db->query("select model,varient,(select color from mtbl_colors where
mtbl_colors.colorid=mtbl_vehicles.colorid) as color from mtbl_vehicles
where model='$model'")->result();
return $q;
}
elseif($varient!='')
{
$q=$this->db->query("select model,varient,(select color from mtbl_colors where
mtbl_colors.colorid=mtbl_vehicles.colorid) as color from mtbl_vehicles
where varient='$varient'")->result();
return $q;
}
}
過濾上述使用where子句中,我使用的查詢這只是一個例子,在那裏我有寫出每個條件的所有條件。所以,我可能會錯過codeigniter中的某些東西,它可以完成這樣的倍數,其中的條件比我現在使用的更容易。
編輯::::
從@Yan我想作爲建議如下
function getVehicles($where_clause='',$where_value='') {
$sql = "select model,varient,(select color from mtbl_colors where
mtbl_colors.colorid=mtbl_vehicles.colorid) as color from mtbl_vehicles";
$where_clause=array("varient", "model", "colorid");
$where_value=array("MAGNA 1.4", "SANTRO", "3")
if (!empty($where_clause) && !empty($where_value)) {
$sql .= " where $where_clause = ?";
return $this->db->query($sql, $where_value)->result();
}
return false;
}
我收到了數據庫錯誤說「無效的列值Aarray」
我的意圖是後根據我的過濾器選項實現多個條件以生成結果。
您可以找到有關這個笨文檔中[HTTP: //ellislab.com/codeigniter/user-guide/database/queries.html](http://ellislab.com/codeigniter/user-guide/database/queries.html) – machineaddict