[PHP]利用ODBC連接Sybase 8並解決中文big5問題

windows要用php連接Sybase可以使用php_sybase_ct.dll,只需有這個dll並把c:\windows\php.ini裡的;extension =php_sybase_ct.dll前面那個分號拿掉,就可以像使用mysql一樣使用Sysbase資料庫了,詳細可以參考以下:

sybase_connect("svname","root","passwd")
//跟mysql用法是一樣的
mysql_connect("svname","root","passwd")

不過在舊的版本上似乎連線不上,也可能是設定不對,所以最後選擇了使用ODBC來解決這個連線的問題,不過因為ODBC連接Sysbase 8預設取得的資料是big5的內容,所以需要再經過其它處理來使其產生網頁內容時變成utf-8。

底下是PHP利用ODBC連接資料庫,並且輸出成utf-8的網頁格式:

PHP利用ODBC連接資料庫,並且輸出成utf-8的網頁格式

如果沒有處理的話輸出是中文的亂碼

沒有處理Sybase的話輸出是中文的亂碼

Read More

Sybase 8(舊版)取得rownum或分頁時使用sql語法

Sybase並沒有像mysql的limit方法,也沒有Oracle的rownum可以用,要做出分頁或RowNum並不是十分容易,在網路上找了很多資料,大概的做法都差不多,主要都是先把原先的表格排序後給於編號,並存入一個暫存的table裡,再利用這個table去Select出要的範圍的資料,不過如果資料量十分驚人時是否還可以用呢?最少比直接把資料回傳至前端再來跑for loop快。

底下提供一個利用join方式來刮掉不需要的範圍:

Read More