CodeIgniter 使用手冊版本 2.1.4


Database 快速入門:範例程式

以下的頁面包含了示範如何使用資料庫類別的範例程式。請閱讀各個函數的說明頁面來了解完整的細節。

起始化資料庫類別

以下的程式根據你設定檔中的設定載入並初始化資料類別:

$this->load->database();

類別一旦載入,就可以像下面說明這樣使用:

注意:如果你的所有的頁面都需要存取你無法自動連接的資料庫,參閱 連接資料庫 頁面來了解細節。

標準的多結果查詢(物件版)

$query = $this->db->query('SELECT name, title, email FROM my_table');

foreach ($query->result() as $row)
{
    echo $row->title;
    echo $row->name;
    echo $row->email;
}

echo 'Total Results: ' . $query->num_rows();

以上的 result() 函數返回一個 objects 陣列。參考範例: $row->title 。

標準的多結果查詢(陣列版)

$query = $this->db->query('SELECT name, title, email FROM my_table');

foreach ($query->result_array() as $row)
{
    echo $row['title'];
    echo $row['name'];
    echo $row['email'];
}

以上 result_array() 函數返回一個標準的索引陣列。參考範例: $row['title'] 。

結果測試

如果你執行的查詢可能 不會 產生結果,那你最好先用 num_rows() 函數做一下測試:

$query = $this->db->query("YOUR QUERY");

if ($query->num_rows() > 0)
{
   foreach ($query->result() as $row)
   {
      echo $row->title;
      echo $row->name;
      echo $row->body;
   }
}

標準的單一結果查詢

$query = $this->db->query('SELECT name FROM my_table LIMIT 1');

$row = $query->row();
echo $row->name;

上例中 row() 函數返回一個 物件。參考範例: $row->name 。

標準的單一結果查詢(陣列版)

$query = $this->db->query('SELECT name FROM my_table LIMIT 1');

$row = $query->row_array();
echo $row['name'];

上例中 row_array() 函數傳回一個 陣列 。參考範例: $row['name'] 。

標準新增

$sql = "INSERT INTO mytable (title,name)
        VALUES (".$this->db->escape($title).",".$this->db->escape($name).")";

$this->db->query($sql);

echo $this->db->affected_rows();

Active Record 查詢

Active Record 模式 給你一個取得資料的簡單方法:

$query = $this->db->get('table_name');

foreach ($query->result() as $row)
{
    echo $row->title;
}

上例中 get() 函數傳回資料表中所有的結果。Active Record 類別包含完整操作資料的方法。

Active Record 新增

$data = array(
               'title' => $title,
               'name' => $name,
               'date' => $date
            );

$this->db->insert('mytable',$data);

// 產生: INSERT INTO mytable (title,name,date) VALUES ('{$title}','{$name}','{$date}')