---
# System prepended metadata

title: 【CI】Model查詢防SQL Injection
tags: [PHP, CI, 封裝查詢]

---

# 【CI】Model查詢防SQL Injection






在Model 撰寫查詢語法時，

為了能避免SQL Injection，

會對參數做一個處理，
或則SQL組合時，
也都會字串與變數連接，

但不好維護，也麻煩。

 

使用封裝查詢，
就不必字串與變數交叉連接，
也會自動幫你防SQL Injection，會是比較好的辦法





```typescript
//較不好

$sql = "SELECT 
            * 
        FROM 
            some_table 
        WHERE 
            id = ? 
        AND 
            status = ? 
        AND 
            author = ?"; 
```



``````php
//較安全　PDO

$this->db->query($sql, array(3, 'live', 'Rick'));

```````


<!-- >[測試區]


> [name=路過民眾] [time=Sun, Jun 28, 2015 9:59 PM] [color=#907bf7]
> > 這位太太您說呢？
> > [name=公園阿姨] [time=Sun, Jun 28, 2015 10:00 PM] [color=red]
> >  來跑步阿
> > [name=公園阿伯]
>
> > [name=心郝類]
> 123

> ［name=1234］ -->

###### tags: `封裝查詢` `PHP` `CI`
