FLEX用AMFPHP開發ORACLE應用
網上的教程大都是用AMFPHP去開發MYSQL資料庫的,但是對於大中型資料庫ORACLE怎麼與AMFPHP的配置、開發卻講得很少,大多都只是講到訪問phpinfo.php能看到OCI8驅動的資訊為止了,且還錯誤重重。由於我單位使用的資料庫使用的是ORACLE資料庫,因此想使用FLEX結合AMFPHP開發一些應用,因此研究了一下午,這個過程還挺艱辛,所以寫下來,以便那些同樣需要開發ORACLE的網友們少走彎路。
PHP的安裝就不多說了,我用的是phpStudy綠色版,解到一個目錄中就可以使用了,如果你的機器上有APACHE和MYSQL,要先停掉原先的應用。
然後是安裝AMFPHP,這個很簡單,下載後解到PHP的WWW目錄下,開啟AMFPHP目錄中的gateway.php這個配置檔案,將編碼設定改為$gateway->setCharsetHandler("iconv", "gb2312", "gb2312"); ,因為一般ORACLE的預設字元是GB2312或是GBK的,因此要改成與你ORACLE伺服器字符集相同的配置。不然顯示出來會是亂碼。
下一步是進行ORACLE客戶端的配置,這裡請注意一定要安裝Oracle10g的客戶端,我的機器用的是oracle8的客戶端死活在phpinfo中不出現OCI的驅動,浪費了我許多時間。因此請先去安裝instantclient,現在的最新版本是instantclient-basic-win32-11.1.0.7.0.zip這個壓縮包,在oracle網站上就有,自己去搜一下。下了之後,隨便先個目錄解壓縮,比如是C:/OracleClient/Bin,並且要將這個路徑新增到系統變數path中去,而且這裡要說明的一點,最好新增在path路徑的開頭,因為我的原來的Oracle客戶端是8.0的,因此在path路徑中也有8.0的路徑,如果不將Oracle的路徑加在前面,PHP會去先找8.0的目錄,會認為Oracle客戶端是8.0的系統,而載入失敗。再在系統變數裡面加一個TNS_ADMIN的變數,把值也設為C:/OracleClient/Bin。最後PHP.ini裡面的extension=php_oci8.dll,extension=php_pdo_oci.dll,extension=php_pdo_oci8.dll要開啟,去掉前面的;就行了。
經過了上面的配置在瀏覽器中開啟phpinfo.php應該能看到OCI安裝成功的資訊了。下面講一下怎麼樣寫AMFPHP的服務,用的是PDO的驅動。
在AMFPHP的Services目錄下建立OracelConn.php檔案,內容為:
這是一個數據庫連線的類,以便主程式呼叫。
再建立oracleClient.php,這個就是AMFPHP與ORACLE進行資料庫存取的操作了,下面是內容:
上面的程式碼有一點要說明,用AMFPHP訪問MYSQL資料庫,只要
就行了,但是oracle就必須要按照上面的方法輸出才能有返回值,不然就是null。
這樣服務端的程式碼就寫好了。下回寫FLEX的程式碼,待續吧......
接下來寫FLEX程式
下面發兩張執行後的截圖
效果不錯吧,用FLEX開發還是很簡單的,如果你願意,可以在上面加上分頁的程式碼,或者是增加、刪除、修改的功能。好了,以後有時間再講一些高階的應用。