第一次使用thinkphp的框架,第一次使用它連接oracle,用了兩天時間,終于給連接上了,現在把這段痛苦的經歷記錄下來給后來人一些啟發,請參考:http://www.thinkphp.cn/document/299.html 和http://it.oyksoft.com/post/6437/這兩篇文章都寫的不錯.
1、使用php-oci-8擴展,將php.ini中的extension=php-oci8.dll取消注釋
2、使用phpinfo(),查看oci8是否enabled,如果是,繼續向下.
3、設置環境變量:TNS_ADMIN,這個環境變量設置tnsnames.ora的路徑,其中tnsnames.ora的內容如下:
- testme =
- (DESCRIPTION=
- (ADDRESS_LIST=
- (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.199)(PORT=11521))
- )
- (CONNECT_DATA=(SERVICE_NAME=test)
- )
- )
4、設置配置文件
- application/common/conf/config.php中定義連接oracle
- 'DB_TYPE' => 'oracle', // 數據庫類型
- 'DB_HOST' => '192.168.1.199', // 服務器地址
- 'DB_NAME' => 'testme', // 數據庫名
- 'DB_USER' => , // 用戶名
- 'DB_PWD' => 'root', // 密碼
- 'DB_PORT' => 1521, // 端口
這里一定要注意,DB_Name是本機監聽oracle 的名字,而不是服務名具體而言,就是tnsname.ora的名字,就是因為這個問題,導致我兩天都沒連通.
5、在Application/Home/Model/下建立表名+Model.class.php文件,文件內容為:
- namespace Home/Model;
- use Think/Model;
- class 表名+Model extends Model
- {
- //內容可以為空,,如果涉及到關聯表等一些邏輯的情況下,必須要填寫
- }
至此,應該就可以通過了,在控制器的方法里寫測試方法:
- $tree=new /Home/Model/TreeModel();
- $fields=$tree->select();
- dump($fields);
新聞熱點
疑難解答
圖片精選