php的CI架構相關資料庫操作

來源:互聯網
上載者:User

標籤:

  在使用之前首先應該設定資料庫的參數,詳見檔案application/config/database.php,裡麵包含主機名稱,登陸使用者名稱,登入密碼,資料庫名,編碼資訊等。  在配置成功後,可以簡單的調用:$this->load->database();進行資料庫連結。  然後可以使用$this->db->query(),$this->db->insert()等方法對資料庫進行相應sql操作,例如下面給出的包含CI架構封裝查詢特性的相關語句:

$sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?";  $this->db->query($sql, array(3, ‘live‘, ‘Rick‘)); 

上面語句先定義好sql操作,然後進行查詢,這裡包含的所謂“封裝查詢”是指,在sql語句中一些參量先不定義,用?替代,然後再調用query方法時在第二參數array中添加依次對應的參量。

  

query() 函數以object(對象)的形式返回一個資料庫結果集. 當使用 "read" 模式來執行查詢時, 你可以使用“顯示你的結果集”來顯示查詢結果; 當使用 "write" 模式來執行查詢時, 將會僅根據執行的成功或失敗來返回 TRUE 或 FALSE. 當你需要將返回的結果賦值給一個自訂變數的時候, 你可以這樣操作:

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

然後可以使用 $query->result(),$query->row()等方法取得查詢的結果。詳見CI手冊。

 

 

下面舉一個項目中遇到的例子:

$sql = "update al set tadl_CorrectState = 0 , tadl_noPunchCardResult= ‘‘                     from t_ttm_vacationinfo vi                     inner join T_Employee te on te.EmpUID = vi.vi_empuid                     inner join workAttendance.dbo.t_Attendance_log al on al.tadl_salarysn = te.SalarySN                         and CAST(al.tadl_date as DATE) between CAST(vi.vi_startdate as DATE) and CAST(vi.vi_enddate as DATE)                     where vi.vi_uid = ? ";$status3 = $this->db->query( $sql , array( $et_uid ) );

裡面本質與上面簡單例子一致,只是包含了更多的sql語句的特性,(資料庫為sql server) 舉例如下:

1. 別名。sql提供別名的特性,許多時候我們給表起名字的時候由於要良好的區分表以及彰顯表的內容一般會起的比較複雜,例如上面這句sql中的 t_ttm_vacationinfo可想而知代表的是請假相關的資訊,但由於名字較長,如果在sal語句中一直使用本名,會導致sql冗長,所以有了上面的“ t_ttm_vacationinfo vi”,意思即為別名。

2.連接。sql提供串連操作,包括inner join, left join, right join 其中inner join表示兩個表需要至少包含一個匹配才可以返回相關行。如上例中採用了三個表之間進行連接,連接時用“on”關鍵字,聲明了應該具有的匹配欄位。

3. CAST函數。CAST()用於將某種資料類型的運算式顯式轉換為另一種資料類型。如上例中轉換成日期格式的。

 

php的CI架構相關資料庫操作

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.