我有一個codeigniter應用程序。codeigniter將複雜查詢變爲活動記錄
我的活動記錄語法完美的作品是:
function get_as_09($q){
$this->db->select('m3');
$this->db->where('ProductCode', $q);
$query = $this->db->get('ProductList');
if($query->num_rows > 0){
foreach ($query->result_array() as $row){
$row_set[] = htmlentities(stripslashes($row['m3'])); //build an array
}
return $row_set;
}
}
這實際上是
select 'm3' from 'ProductList' where ProductCode='$1'
我需要做的就是下面的查詢轉換成一個主動的記錄類型查詢並返回給什麼控制器按照上述活動記錄語法:
select length from
(SELECT
[Length]
,CONCAT(([width]*1000),([thickness]*1000),REPLACE([ProductCode],concat(([width]*1000),([thickness]*1000),REPLACE((convert(varchar,convert(decimal(8,1),length))),'.','')),'')) as options
FROM [dbo].[dbo].[ProductList]) as p
where options='25100cr' order by length
我圖片的東西像下面,但這不起作用。
$this->db->select(length);
$this->db->from(SELECT [Length],CONCAT(([width]*1000),([thickness]*1000),REPLACE[ProductCode],concat(([width]*1000),([thickness]*1000),REPLACE((convert(varchar,convert(decimal(8,1),length))),'.','')),'')) as options
FROM [dbo].[dbo].[ProductList]);
$this->db->where(options, $q);
$this->db->order(length, desc);
幫助一如既往的讚賞。再次感謝。
爲什麼不直接執行sql查詢呢? '$ this-> db-> query($ sql)' – Brewal
@Brewal,不對注入或任何其他安全漏洞開放? – Smudger