Re: [閒聊] Smarty + ADOdb 小心得
※ 引述《jsu (SSN 快快來~)》之銘言:
: ※ 引述《JoeHorn (獅子男)》之銘言:
: : 之前寫過的文章,這邊貼一份,有需要的可以參考看看。
: : ==============================================================================
: : Smarty 官方: http://smarty.php.net/
: : Smarty 入門: http://www.php5.idv.tw/documents/smarty/smarty20040209.htm
: : ADOdb 官方: http://adodb.sourceforge.net/
: : ADOdb 入門: http://linux.tnc.edu.tw/techdoc/adodb/book1.html
: : ADOdb 功能比較完整, 所以我把 ADOdb Lite 丟了.
: 其實我不是很理解為什麼要用 ADOdb 來玩資料庫耶
: 會採用 Freetds 也是因為要讓 php 跟 MSSQL server 溝通
: 一開始在編 php 的時候把 MySQL 弄進 Makefile 不就可以支援了嗎?
: 然後自己寫個 class 去負責資料庫溝通
: 還是說在我編 php 的過程中它偷偷幫我做了一些事省了一些麻煩而我不知道?
: 難道是 ADOdb/Freetds ,這些東西可以增加程式的移植性?
: (我是真不懂沒有不敬的意思)
adodb本來就是為了增加程式可移植性而誕生的產物啊。
php(在5.0版加入pdo之前)對於各種資料庫的操作方式不統一,
針對mysql來寫,程式裡面用的都是mysql_xxx(),針對MS SQL Server來寫,
程式裡面都是mssql_xxx(),針對Oracle寫,程式裡面都是oci_xxx()....
不同的資料庫有整套不同的函數來對應。如果沒有一個所謂的資料庫存取
抽象層(例如adodb)來把php對不同資料庫有不同操作方式這個差異性包裝
起來,那麼針對mysql寫的程式幾乎不可能移植到只能跑MS SQL Server的
環境上面去,程式只能選擇一種資料庫來支援。
有了資料庫存取抽象層,更換資料庫只需要在連線的時候指定不同的參數
即可,稍微想一下就可以改個config檔的設定就整個換掉。
: : 目前在這兩個搭配上面, 有另外一點要做考量.
: : 因為 Smarty 可以讓我們把多組 SQL 抓出來的資料用 array 丟進去,
: : 然後用 foreach 做顯示.
: : ( 也就是沒限定你只能丟一組 array )
: : 而 ADOdb 的效能不高, 所以原本我們需要做 TABLE JOIN 時可以考慮這兩種方式:
: : 1. 不做 JOIN , 直接 QUERY 多組資料,
: : 然後在 Smarty template 裡面用 foreach 跟 if/else 將多組資料整合.
: : ( 效能瓶頸在 PHP & Smarty )
: 這種方式如果加入了 result sorting 的情況
: 應該在 statement 中加入 order by 會比較方便使用吧?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 202.154.199.81
→
02/07 19:58, , 1F
02/07 19:58, 1F
→
02/07 20:03, , 2F
02/07 20:03, 2F
→
02/07 20:05, , 3F
02/07 20:05, 3F
→
02/07 21:18, , 4F
02/07 21:18, 4F
推
02/08 00:31, , 5F
02/08 00:31, 5F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章