Re: [閒聊] Smarty + ADOdb 小心得

看板PHP作者 (請勿忘記密碼)時間19年前 (2007/02/07 12:57), 編輯推噓1(104)
留言5則, 3人參與, 最新討論串3/3 (看更多)
※ 引述《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
那DB套件不也一樣的意思?不同資料庫只需改CONFIG檔
02/07 19:58, 1F

02/07 20:03, , 2F
yes.adodb本來就是惟珨〞榛b套件的一種
02/07 20:03, 2F

02/07 20:05, , 3F
yes. adodb本來就是您所說的DB套件的一種。
02/07 20:05, 3F

02/07 21:18, , 4F
恩恩~不過沒用過adodb耶= =!
02/07 21:18, 4F

02/08 00:31, , 5F
我滿喜歡adodb裡面的pivottable還有檔案輸出的功能,很好用!
02/08 00:31, 5F
文章代碼(AID): #15oLn9NI (PHP)
討論串 (同標題文章)
文章代碼(AID): #15oLn9NI (PHP)