国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Rumah php教程 php手冊 ThinkPHP 連接Oracle數(shù)據(jù)庫的詳細教程[全]

ThinkPHP 連接Oracle數(shù)據(jù)庫的詳細教程[全]

Jun 13, 2016 am 11:59 AM
oracle thinkphp windows7 satu membina beroperasi Tutorial pangkalan data perdana persekitaran daripada sistem terperinci menyambung

一、?操作環(huán)境搭建

系統(tǒng):Windows7 旗艦版 64位
PHP環(huán)境:wampserver2.2e-php5.4.3-httpd2.2.22-mysql5.5.24? 32位版
下載地址:http://www.wampserver.com/en/


ThinkPHP:3.0正式版
下載地址:http://thinkphp.cn/down.html


Oracle:Orcale_11gR2? 32位版
下載地址:http://www.oracle.com/technetwork/cn/indexes/downloads/index.html


數(shù)據(jù)庫操作工具:PLSQL Developer 32位
下載地址:http://www.allroundautomations.com/plsqldev.html


開發(fā)工具:NetBeans IDE 7.1.2
下載地址:http://netbeans.org/downloads/index.html 下載單PHP的版本即可

說明:這里我反復(fù)強調(diào)軟件的“位”,是因為這個很重要,一般情況下,我們系統(tǒng)是64位的,那么最好軟件也用64位的,但是這里除過系統(tǒng)外,全部選擇32位是有原因的,目的是為了配合PLSQL Developer和WAMP的PHP擴展。因為PLSQL Developer沒有64位版。有的朋友說用64位Oracle數(shù)據(jù)庫,裝32位客戶端就行,我不想這樣做,如果不喜歡我的操作方式,可以繞道。當(dāng)然了,如果你不使用PLSQL Developer,而選擇使用Oracle 自帶的SQL Developer,那么你全安裝64位或32都是你自己的事。PHP連接Oracle數(shù)據(jù)庫需要開啟相應(yīng)的擴展,這個擴展也需要數(shù)據(jù)庫客戶端的支持,因為php擴展也需要對應(yīng)數(shù)據(jù)庫客戶端的位數(shù)。啰嗦完畢。

二、?環(huán)境配置

1,?操作系統(tǒng)的安裝我就不說了,Oracle安裝自己解決,NetBeans IDE 7.1.2也自己解決。

2,?Wamp的安裝我也不說了,不會的直接從DOS開始重新學(xué)習(xí)吧。

3,?WAMP會把PHP的網(wǎng)頁文件夾定義在安裝wamp的文件夾下的www里面,我是安裝在D盤,所以就是D:\WAMP\www。我們暫時不做別的自定義修改。啟動wamp,系統(tǒng)托盤圖標為綠色表示啟動OK。

4,?打開localhost,看到如下界面,表示環(huán)境配置基本OK。為什么是基本了,因為還沒有對Oracle的配置進行設(shè)置。

5,?打開如圖的PHP擴展菜單,在綠色圖標上,左鍵->PHP->PHP擴展,點擊php-oci8的擴展,這時候這個WAMP會重啟,等待重啟后變綠,就表示OK。

6,?再次打開剛才的localhost頁面,如果找到如圖4的顯示,就表示目前PHP已經(jīng)支持Oracle了。

注意,我現(xiàn)在用的 wamp和oracle客戶端都是32位,如果其中一個是64位,那么這個oci的擴展時打不開的,同時自動環(huán)境監(jiān)測頁面也沒有oci8的顯示。在不使用PL/SQL的前提下,必須是32位Oracle和32位WAMP搭配,64位Oracle和64位WAMP搭配,else請繞道。

三、?ThinkPHP配置

1,?把下載好的3.0正式版解壓,項目中只需要ThinkPHP文件夾,這是核心。
2,?使用IDE新建一個項目,項目的文件夾為剛才的Wamp下的www文件夾,如果個人需要自定義別的文件夾,需要修改apache的配置文件,這里我不修改。
3,?將Thinkphp文件夾拷貝到項目文件夾中,新建一個php文件,命名index.php。
4,?IDE中已經(jīng)有這些文件的顯示了,打開index.php,編寫如下內(nèi)容:

復(fù)制代碼 代碼如下:


define('APP_DEBUG', true);
require './ThinkPHP/ThinkPHP.php';


5,?在瀏覽器中打開localhost/項目名/index.php,Thinkphp會幫你生成好相關(guān)文件和文件夾。
6,?對配置文件進行操作,找到:Conf文件夾下config.php文件,修改如下:

復(fù)制代碼 代碼如下:


return array(
'DB_TYPE' => 'Oracle', // 數(shù)據(jù)庫類型
'DB_HOST' => '192.168.0.8', // 服務(wù)器地址
'DB_NAME' => 'orcl', // 數(shù)據(jù)庫名
'DB_USER' => 'test', // 用戶名
'DB_PWD' => 'test', // 密碼
'DB_PORT' => '1521', // 端口
);


Oracle數(shù)據(jù)庫和mysql 的結(jié)構(gòu)不同,一般默認安裝的數(shù)據(jù)庫名是orcl,如果你使用了多個數(shù)據(jù)庫監(jiān)聽,那么就要根據(jù)具體的監(jiān)聽字段來設(shè)置。比如:我本機數(shù)據(jù)庫堅挺是Orcl,同時監(jiān)聽另外一個外網(wǎng)的數(shù)據(jù)庫,監(jiān)聽字符串為Orcl2,那么如果你需要連接這個外網(wǎng)數(shù)據(jù)庫,那么需要寫的數(shù)據(jù)庫名就是orcl2。

7,?經(jīng)過以上的配置,是已經(jīng)可以連接oracle數(shù)據(jù)庫了,但是在thinkphp的實際操作中有什么注意的地方,且接著往下看。

最近收集了一些關(guān)于THinkPHP連接Oracle數(shù)據(jù)庫的問題,有很多朋友按照連接mysql的方法來操作,導(dǎo)致有一些方法在Oreale中無法正常使用。比如說:findAll,Select方法無法使用,獲取不到需要的數(shù)據(jù)。Create和add方法無法創(chuàng)建和寫入數(shù)據(jù)到數(shù)據(jù)庫中。

其實根據(jù)以前問題我做了幾天調(diào)試,找到了問題所在,并成功在我自己一個小項目練習(xí)中使用正常,那么現(xiàn)在就將我的經(jīng)驗分享給大家。

1,數(shù)據(jù)庫的連接及配置文件的內(nèi)容我就不說了, 上面已經(jīng)做了解釋。我這里只根據(jù)一個數(shù)據(jù)表的例子來說明我的操作。

2,表結(jié)構(gòu)如下:



3,這個表中有3個字段,ID主鍵,用戶名username和密碼password,因為oracle數(shù)據(jù)庫把表名和字段都是轉(zhuǎn)成大寫的,同時不支持ID主鍵自增,我只有使用另外的方法來實現(xiàn)這個功能,比如:ID自動序列+觸發(fā)器實現(xiàn)ID自增。

4,?? ?ThinkPHP中,Action是控制器,Model是模型,視圖是以模板方式體現(xiàn)的。

首先,說控制器,我只做增加和獲取列表的方法介紹。

其次,說模型,這里才是成功的主要原因。為什么?ThinkPHP是有字段映射的,這個在對MYSQL的支持非常完美,基本不用寫MODEL,但是對ORALCE就不行了,當(dāng)使用M->add()來添加數(shù)據(jù)時,字段會被$this->_facade()方法過濾掉。這樣生成的SQL語句就是沒法執(zhí)行的,肯定是錯誤的,導(dǎo)致數(shù)據(jù)添加不到數(shù)據(jù)庫中,那么使用select()方法也是一樣被過濾。

再次,當(dāng)我單步調(diào)試時,斷點被過濾的時候,過濾方法使用到了new出來的MODEL,這個MODEL會有一個字段映射的數(shù)組在里面,這個過濾方法就是和這個字段數(shù)組進行對比,如果不一致就過濾掉,結(jié)果我調(diào)試發(fā)現(xiàn),new出來的MODEL根本沒有把字段映射加進去,數(shù)組直接為空,當(dāng)然就沒法和添加的數(shù)據(jù)字段一一對應(yīng)了。這就是錯誤的關(guān)鍵。

下面就來說解決方法,其實很簡單,按照基本的MVC結(jié)構(gòu),不管是PHP還是JAVA還是.NET都有這樣的結(jié)構(gòu),那么按照嚴格的標準,MODEL層的代碼是必須寫的,就是要和數(shù)據(jù)庫的字段做映射。但是很多用mysql的,就直接沒有去寫MODEL里面的代碼。這種習(xí)慣被用到了oracle中,就出了問題。

5,?? ?下面針對我上面的數(shù)據(jù)表寫出我的代碼:

我的Action是這樣的:UserAction.class.php。控制器我只對添加和查找做例子,因此代碼如下:

復(fù)制代碼 代碼如下:


public function index() {
header("Content-Type:text/html; charset=utf-8");
$M_User = new UserModel();
$User_List = $M_User->select();
$this->assign('Title', '用戶管理');
$this->assign('UserList', $User_List);
$this->display();
}
//添加用戶提交處理
public function Create_Post() {
$M_User = new UserModel();
$data['username'] = $this->_post('username');
$data['password'] = md5($this->_post('pwd'));
if ($M_User->create()) {
$Query_Result = $M_User->add($data);
if (false !== $Query_Result) {
$this->success('用戶添加成功');
} else {
$this->error('用戶添加錯誤');
}
} else {
header("Content-Type:text/html; charset=utf-8");
exit($M_User->getError() . ' [ 返 回 ]');
}
}


?Action解釋:

$M_User=new UserModel();

這個方法最好這么寫,因為做.NET的原因,一直都這么寫的。針對具體的模型進行實例化,嚴格規(guī)定我就要對User表進行操作了。

獲取POST數(shù)據(jù)的代碼就不多解釋了。

$M_User->create();

這是ThinkPHP的一個方法,很好,可以幫你過濾掉非法的東西,建議使用。

$Query_Result = $M_User->add($data);

這一段就是數(shù)據(jù)的添加,我習(xí)慣指定要添加的數(shù)據(jù),也是因為這一段需要根據(jù)$M_User實例化,并過濾字段。當(dāng)然了,我們只要做好MODEL的代碼,就不會有問題。下面的代碼就不解釋。官方文檔都有。

我的Model是這樣的:UserModel.class.php

protected $fields = array( 'id', 'username', 'password' );

Model解釋:這才是重點,這有這樣,new出來的$M_User的映射字段數(shù)組才不會為空,這樣才能和POST的數(shù)據(jù)進行對應(yīng),才會讓過濾方法正常識別,不被過濾。

6,經(jīng)過了以上的操作,針對Oracle的數(shù)據(jù)庫操作就完成了,我現(xiàn)在也可以任意使用ThinkPHP提供的方法來操作數(shù)據(jù)了,包括分頁(limit),find(),findAll等等。

出處 http://www.cnblogs.com/aceliu/

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk belajar Java tanpa mengambil jalan memutar. Kaedah dan teknik berkongsi untuk belajar Java dengan cekap Bagaimana untuk belajar Java tanpa mengambil jalan memutar. Kaedah dan teknik berkongsi untuk belajar Java dengan cekap May 20, 2025 pm 08:24 PM

Kunci untuk belajar Java tanpa mengambil jalan memutar adalah: 1. Memahami konsep teras dan tatabahasa; 2. Amalan lebih banyak; 3. Memahami Pengurusan Memori dan Koleksi Sampah; 4. Sertai komuniti dalam talian; 5. Baca kod orang lain; 6. Memahami perpustakaan dan kerangka biasa; 7. Belajarlah untuk menangani kesilapan yang sama; 8. Buat pelan pembelajaran dan teruskan langkah demi langkah. Kaedah ini dapat membantu anda menguasai pengaturcaraan Java dengan cekap.

Apa yang perlu dipelajari Java? Ringkasan Laluan Pembelajaran Java dan Mata Pengetahuan Penting Apa yang perlu dipelajari Java? Ringkasan Laluan Pembelajaran Java dan Mata Pengetahuan Penting May 20, 2025 pm 08:15 PM

Pembelajaran Java memerlukan pembelajaran sintaks asas, pengaturcaraan berorientasikan objek, kerangka koleksi, pengendalian pengecualian, multithreading, streaming I/O, JDBC, pengaturcaraan rangkaian, dan ciri-ciri canggih seperti refleksi dan anotasi. 1. Sintaks asas termasuk pembolehubah, jenis data, pengendali dan penyataan aliran kawalan. 2. Pengaturcaraan berorientasikan objek meliputi kelas, objek, warisan, polimorfisme, enkapsulasi dan abstraksi. 3. Rangka kerja koleksi melibatkan ArrayList, LinkedList, Hashset, dan HashMap. 4. Pengendalian Pengecualian Memastikan ketahanan program melalui blok percubaan. 5. Pengaturcaraan multithreaded memerlukan pemahaman tentang kitaran hayat benang dan penyegerakan. 6. Aliran I/O digunakan untuk membaca, menulis dan operasi fail. 7. JDBC digunakan untuk berinteraksi dengan pangkalan data. 8. Pengaturcaraan rangkaian melewati s

Sambungan dan visualisasi data pangkalan data Oracle dengan alat BI seperti Tableau Sambungan dan visualisasi data pangkalan data Oracle dengan alat BI seperti Tableau May 19, 2025 pm 06:27 PM

Untuk menyambungkan pangkalan data Oracle ke Tableau untuk visualisasi data, anda perlu mengikuti langkah -langkah berikut: 1. Konfigurasi sambungan pangkalan data Oracle di Tableau, gunakan pemacu ODBC atau JDBC; 2. Terokai data dan buat visualisasi, seperti carta bar, dan sebagainya; 3. Mengoptimumkan pertanyaan dan indeks SQL untuk meningkatkan prestasi; 4. Gunakan jenis dan fungsi data kompleks Oracle untuk dilaksanakan melalui pertanyaan SQL tersuai; 5. Buat pandangan yang terwujud untuk meningkatkan kelajuan pertanyaan; 6. Gunakan fungsi interaktif Tableau seperti papan pemuka untuk analisis mendalam.

Penyataan Pangkalan Data SQL Ringkasan Penyata Umum untuk Pangkalan Data SQL Penyataan Pangkalan Data SQL Ringkasan Penyata Umum untuk Pangkalan Data SQL May 28, 2025 pm 08:12 PM

Kenyataan SQL biasa termasuk: 1. 2. CreateIndex mencipta indeks, seperti createIndexidx_Nameonemployees (nama); 3. Insertinto memasukkan data, seperti nilai Insertinto (ID, Nama, Gaji) (1, 'Johndoe', 75000.00); 4. Pilih Semak

Bilakah saya harus menggunakan Redis dan bukan pangkalan data tradisional? Bilakah saya harus menggunakan Redis dan bukan pangkalan data tradisional? May 13, 2025 pm 04:01 PM

UseredisinsinsteadofatraditionaldatabasewhenyourapplicationRequiresspeedandreal-timedataprocessing, suchorcaching, sessionmanagement, orreal-timeanalytics.redisexcelsin: 1)

Konfigurasi pertanyaan selari dan peningkatan prestasi dalam pangkalan data Oracle Konfigurasi pertanyaan selari dan peningkatan prestasi dalam pangkalan data Oracle May 19, 2025 pm 06:24 PM

Dalam Pangkalan Data Oracle, langkah -langkah untuk mengkonfigurasi pertanyaan selari untuk meningkatkan prestasi termasuk: 1 ditetapkan pada tahap pangkalan data, dan melaksanakannya dengan mengubah parameter permulaan seperti paralel_degree_policy dan parallel_max_servers; 2. Tetapkan di peringkat sesi, laraskan paralelisme sesi semasa melalui perintah altersession; 3. Pertimbangkan perkara utama seperti paralelisme, pengurusan sumber dan pengagihan data; 4. Meningkatkan prestasi dengan mengoptimumkan perancangan pertanyaan, menyesuaikan paralelisme dan pemantauan dan penalaan. Langkah -langkah ini membantu memanfaatkan manfaat pertanyaan selari dan meningkatkan prestasi pertanyaan pangkalan data.

Cara Melihat Semua Pangkalan Data di MongoDB Cara Melihat Semua Pangkalan Data di MongoDB Jun 04, 2025 pm 10:42 PM

Cara untuk melihat semua pangkalan data di MongoDB adalah memasuki perintah "showdbs". 1. Perintah ini hanya memaparkan pangkalan data yang tidak kosong. 2. Anda boleh menukar pangkalan data melalui arahan "Gunakan" dan memasukkan data untuk menjadikannya paparan. 3. Perhatikan pangkalan data dalaman seperti "tempatan" dan "config". 4. Apabila menggunakan pemandu, anda perlu menggunakan kaedah "ListDatabases ()" untuk mendapatkan maklumat terperinci. 5. Perintah "db.stats ()" boleh melihat statistik pangkalan data terperinci.

Bagaimana cara memasang MySQL 8.0 pada Windows/Linux? Bagaimana cara memasang MySQL 8.0 pada Windows/Linux? Jun 11, 2025 pm 03:25 PM

Kunci untuk memasang MySQL 8.0 adalah mengikuti langkah -langkah dan memberi perhatian kepada masalah biasa. Adalah disyorkan untuk menggunakan pakej pemasangan MSI pada Windows. Langkah -langkah termasuk memuat turun pakej pemasangan, menjalankan pemasang, memilih jenis pemasangan, menetapkan kata laluan root, membolehkan permulaan perkhidmatan, dan memberi perhatian kepada konflik pelabuhan atau mengkonfigurasi versi zip secara manual; Linux (seperti Ubuntu) dipasang melalui APT, dan langkah -langkahnya adalah untuk mengemas kini sumber, memasang pelayan, menjalankan skrip keselamatan, memeriksa status perkhidmatan, dan mengubah suai kaedah pengesahan root; Tidak kira platform mana, anda harus mengubah suai kata laluan lalai, membuat pengguna biasa, menyediakan firewall, menyesuaikan fail konfigurasi untuk mengoptimumkan set aksara dan parameter lain untuk memastikan keselamatan dan penggunaan biasa.

See all articles