Exzilla.net
Contact
Home -> Articles -> Howto connect Oracle Database from php grogram without tnsnames.ora
 
Features
Forums
Files
Blogs
HOWTO: connect Oracle Database from php program without tnsnames.ora
Sept 21, 2001
Fuju
Author's Bio | E-Mail
Copyright (C) 2001 exzilla.net

 

How to connect Oracle Database from php program without tnsnames.ora

Prerequistires:

Assumption:

ได้มีการติดตั้ง Oracle Client ณ เครื่องที่ได้ติดติดตั้ง WebServer และPHP engine แล้ว

Purpose:

แสดงวิธีการ ติดต่อกับ Oracle Database ด้วย PHP โดยใส่ ส่วนอธิบายการติดต่อ Database ไว้ใน Source Code ของ PHP

Step-by-Step Example:

1. Checking Oracle client

ถ้าท่านเป็นคนหนึ่งที่กำลังพัฒนา PHP และติดต่อกับ Oracle8 database อยู่

สิ่งแรกที่ต้องทำก่อนที่จะติดต่อกับ Oracle Database ได้นั้นท่านก็ต้อง ติดตั้ง Oracle client และทำการ config Oracle client ให้รู้จักกับ Database Server

การ config Oracle Client นั้นก็ต้องมี file tnsnames.ora เข้ามาเกี่ยวข้อง ( ดูรายละเอียด เพิ่มเติมที่ article ที่ชื่อ Oracle Client Checking (pdf,62k,th,fuju) )

แต่ถ้าท่านไม่ต้องการที่จะแก้ไข file tnsnames.ora แต่เลือกที่จะฝัง code ในการ connect ไว้ใน source code เลยตัวอย่างนี้ก็เป็นทางเลือกที่ท่านสามารถทำได้ครับ

$db = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = fuju.exzilla.net)(PORT = 1521)))(CONNECT_DATA=(SID=fujudb)))";

 

ท่านสามารถกำหนด ตัวแปล $db โดยเปลี่ยน

HOST เป็น ชื่อเครื่องที่ท่านมี Database Server อยู่

PORT เป็นที่ Listener ทำงานอยู่ 1521 เป็น Default port

SID เป็น ชื่อ instance ของท่าน

2. Coding

จากตัวอย่างผมต้องการติดต่อกับ instance ชื่อ fujudb ที่อยู่บนเครื่อง fuju.exzilla.net โดยผ่าน port 1521

<?php

print "<HTML><PRE>";

$db = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = fuju.exzilla.net)(PORT = 1521)))(CONNECT_DATA=(SID=fuju)))";

$c1 = ocilogon("scott","tiger",$db);

function select_data($conn) {
$stmt = ociparse($conn,"select * from scott.emp");
ociexecute($stmt,OCI_DEFAULT);

echo $conn." <----selecting\n";
echo "-----------------------\n";

while (ocifetch($stmt)){

echo ociresult($stmt,"EMPNO")." ";
echo ociresult($stmt,"HIREDATE")." ";
echo ociresult($stmt,"ENAME")."\n";

}

echo $conn." <----done\n\n";

}

select_data($c1);
ocilogoff($c1);
print "</PRE></HTML>";

?>

Note:

Complete Sample code:

References:

More Information:

Keywords:

PHP tnsnames.ora Oracle Client

 
 
{exzilla.net -- e-development QuickStart --}



Copyright (c) 2001-2005 - Exzilla.net -  All Rights Reserved.
Contact Us | Privacy Policy | Terms & Conditions