CoP Prince of Songkla University Phuket Campus's Blog

php ติดต่อ oracle ด้วย oci

5 September 2019 | NOPPACHART LERDPOONSAWAT | Leave a comment

1.ให้ทำการ download package ที่ต้องใช้โดยเข้าไปที่ https://www.oracle.com/database/technologies/instant-client/downloads.html  ให้ทำการเลือกว่าจะโหลดแบบ 64bit หรือ 32bit(ให้ตรงกับ window วิธีการดูว่าจะใช้แบบไหน ให้เข้าไปที่ http://localhost/dashboard/phpinfo.php โดยให้ไปดูที่หัวข้อ Architecture 

2.ทำการโหลด 2 ไฟล์หลักคือ instantclient basic และ instantclient SDK ส่วนวิธีดูว่าจะโหลดเวอร์ชั่นไหนให้ดูที่ http://localhost/dashboard/phpinfo.php หัวข้อ Configure Command จะมี คือว่า instantclient_xx_x ให้สังเกตุตัวเลขแล้วโหลดตามเวอร์ชั่นนั้น

3.ทำการแตกไฟล์ zip ทั้ง 2ไฟล์ที่โหลดมาจะได้ Folder ชื่อ instantclient_12_1 แล้วไปไว้ใน path ไหนก็ได้ ตัวอย่าง C:\Oracle\instantclient_12_1

4.ให้ไปที่ Environment Variables ดูตรงที่ System variables เลือก Path กด Edit

5.ให้กด New ใส่ Path ที่วางโฟล์เดอร์ไว้ ตัวอย่างเช่น C:\Oracle\instantclient_12_1 และ path sdk ตัวอย่างเช่น C:\Oracle\instantclient_12_1\SDK

6.ให้เข้าไปเช็คที่ http://localhost/dashboard/phpinfo.php แล้ว Search หาหัวข้อ oci8 ตามรูปภาพ ถึงตอนนี้แสดงว่าสามารถใช้ oci ใน php ได้แล้ว

7.ใน code php ให้ทำการเช็คว่าติดต่อฐานข้อมูลได้หรือยังตามนี้

$db = “(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = xxxx)(PORT = xxxx)))(CONNECT_DATA=(SID=xxxx)))”;
$objConnect = oci_connect(“username”, “passsword”, $db);
if (!$objConnect)
echo’Failed to connect to Oracle’;
else
echo ‘Succesfully connected with Oracle DB’;
oci_close($objConnect);

ถ้าขึ้น Succesfully connected with Oracle DB แสดงว่าพร้อมใช้งาน

8.เมื่อติดต่อได้แล้วแต่ก็จะเจอปัญหาคือภาษาไทยจะแสดงเป็น ??? ซึ่งได้ลองวิธีใส่ Meta charset ก็ยังเป็นเครื่องหมาย ??? จึงต้องใช้วิธี config ใน oci_connect ดังนี้

$objConnect = oci_connect(“username”, “passsword”, $db,’UTF8′);

ก็จะสามารถแสดงภาษาไทยได้

Leave a Reply