2007/01/01

Firebird 與 PHP 連線

Firebird 與 PHP 的連線,其實是很簡單的,在安裝 PHP 的機器上,編輯底下這個檔案
%WINDIR%\\system32\\drivers\\etc\\services
在檔案中加上這一行:
gds_db           3050/tcp                           #firebird Database
這樣就可以連線了。

另外,Firebird的管理工具,推薦使用
FlameRobin。

DB2 Express-C 與 PHP 連線

DB2 Express-C 的與 PHP 連線的方式,其實只要安裝DB2 9 Runtime Client套件就可以了,這是比較保險的方式,不過這個檔案要23MB(僅English),有點大就是。

其他的方式不推薦,因為需要額外設定一些環境變數,有點麻煩。

Oracle 10g Express Edition 與 PHP 連線

這兩天用VPC做了一個虛擬機器,把實驗用的資料庫們丟過去,順便測一下網路上寫的連線方式看對不對。
我發現對於Oracle 10g Express Edition的方式,作法上跟網路上這篇以及這篇說的有點出入。

首先要解釋的是,那篇文章講的應該是是Oracle 10g Enterprise/Standard Editions 的作法,所以他所說的那三個在Instant Client裡面的dll,並不適用於Oracle 10g Express Edition。

正確的作法是,要去下載Oracle Database 10g Express Client這個套件,下載的連結頁面同Oracle 10g Express Edition,其大小是30MB左右。當然啦,如果把Oracle 10g Express Edition跟Apache、PHP裝在同一台機器上的話,可以不用作底下的設定。

下載Oracle Database 10g Express Client回來後,把他安裝起來,裝完後在其安裝目錄下的bin目錄中,可以找到許多檔案,需要的只有下面三個:
  • oci.dll
  • ociw32.dll
  • oraocixe10.dll
至於orannzsbb10.dll裡面也有,不過目前我還沒發現這個檔案是否為必須,因為連結上並不需要這個檔案也可以進行連結。

把上面三個檔案複製到PHP的安裝目錄中即可,之後可以把Oracle Database 10g Express Client給反安裝移除掉。


2006/12/26

幾個資料庫連線的參考資料

對啦,我是在重新造輪子沒錯,目前正在寫一個類似adodb的東西,開發平台是XP SP2+Apache 2.2+PHP 5.2。
目前只先處理連線的部份,其他的慢慢搞。
有些該紀錄的東西先記下來,這裡有一份資料庫預設的帳號密碼。
目前我裝過的一些資料庫的問題:
  • DB++:網站上找不到可下載的連結。
  • FrontBase:授權要填的表單太麻煩,我頭一次看到要求要填MAC的
  • Informix、Ingres:安裝過程失敗
  • MaxDB:只支援到 PHP 5.1.2
  • mSQL:網站上只提供Source,沒有預編好的Binary可下載。
  • Ovrimos SQL Server:網站掛了,無法下載
  • Sybase:他有很多產品線,我是拿SQL Anywhere 10 來看,只支援到 PHP 5.1.2;而ASE Express只提供Linux版可下載,沒有Windows版的,另外 PHP 內的 php_sybase_ct.dll 我沒辦法把他載入,聽說是缺少Runtime Libs

目前在php的函數中,有關資料庫(我個人的定義是可以吃SQL命令的)的介面函數大概分成四種:
  • 原生函數:DB++, Firebird, FrontBase, DB2, Informix, Ingres, MaxDB, Microsoft SQL Server, mSql, MySQL, Oracle,  Ovrimos SQL Server,  PostgreSQL, SQLite, Sybase
  • dbx:MySQL, ODBC, PostgreSQL, Microsoft SQL Server, FrontBase, Oracle, Sybase, SQLite
  • pdo:Firebird, Infomix, Microsoft SQL Server, MySQL, Oracle, ODBC, PostgreSQL, SQLite
  • odbc
目前我寫的這個確定會支援的:Firebird, DB2, Microsoft SQL Server, MySQL, Oracle, PostgreSQL, SQLite,而MaxDB及SQL Anywhere等有支援PHP 5.2的extension後也會考慮加入支援,另外有空的話也會支援dbx、pdo、odbc,不過要慢慢弄。

2006/12/25

MS SQL Server 連線的作法

我是使用 SQL Server 2005 Express Edition 來作測試,有些地方要手動改。
  1. 下載 http://webzila.com/dll/1/ntwdblib.zip
  2. 解開得到 ntwdblib.dll ,把這個檔複製到 php 的安裝目錄,替換掉 php 內建的。

連線的範例:
mssql_connect ('(local)\SQLEXPRESS', 'sa', 'password');

或者用SQL Server組態管理員,把TCP/IP協定打開,重新啟動SQL Server後,也可以這樣:
mssql_connect ('127.0.0.1', 'sa', 'password');

phpPgAdmin的設定

今天把PgSQL 8.2裝到我的工作電腦(XP)裡面,順便裝上phpPgAdmin這個管理介面。
這個Web式的管理介面有點像是phpMyAdmin跟pgAdmin III的混合體,他完整的呈現了PgSQL比較複雜的一面。

要修改的是phpPgAdmin/conf/config.inc.php這個檔
找到
$conf['extra_login_security'] = true;
改成
$conf['extra_login_security'] = false;

這樣子就可以用在安裝時設定的帳號密碼來連線了。

2006/12/24

暴風影音與MPC

玩過不少Codec Pack,不過我個人目前還是比較喜歡暴風影音以及K-Lite Mega Pack這兩套。
由於目前並沒有轉檔或是製作影音檔的打算,純播放的話,暴風影音就夠了。
而暴風影音還附了一個調整程式,玩爛了很容易調整回來。

不過目前遇到一個奇怪的例子,在播放某個RM檔時會有問題,MPC直接就結束了,而KMPlayer可以很順利的播放。
後來我調整了MPC裡的設定:
View->Options->Player->Formats->File extensions->Real Media files
把他後面的Handle由DirectShow改成RealMedia就可以播放了。

另外,有時候在播放時會出現整片色塊暈開的現象,在我目前這台AP1000的機器上,只要在BIOS裡面把VGA的Share Memory開大一點就行了。(我這台上面可設定的範圍是16M~128M,我把他開到128M問題就解決了)