วันพุธที่ 9 มกราคม พ.ศ. 2556

How to PHP + IBM Informix Dynamic Server

การพัฒนา Web Application ด้วย PHP เพื่อให้สามารถติดต่อกับฐานข้อมูล IBM Informix ได้นั้น มีขั้นตอนดังต่อไปนี้

การทดสอบครั้งนี้อยู่บนพื้นฐาน

Database Server
Aix 5.3 + IDS 9

Client
Windows Vista Business 32bit [จำลองเป็น WWW Server ด้วย Appserv 2.9]

ขั้นตอนการติดตั้ง
1. Download IBM Informix Client SDK 2.9 จาก IBM และทำการติดตั้ง
2. Re-Config PHP.INI

uncomment บรรทัดดังต่อไปนี้
extension=php_ifx.dll
extension=php_pdo.dll
extension=php_pdo_informix.dll

ระบุ parameter สำหรับติดต่อไปยัง Database Server
[Informix]
; Default host for ifx_connect() (doesn't apply in safe mode).
ifx.default_host = Hostname

; Default user for ifx_connect() (doesn't apply in safe mode).
ifx.default_user = Username

; Default password for ifx_connect() (doesn't apply in safe mode).
ifx.default_password = Password



โดย File .dll สำหรับ extension ที่เปิดใช้งานนั้น ต้อง download ให้ตรงกับ version ของ php [5.2.3]
.dll สามารถหารุ่นที่ตรงกับ version ของ php ของคุณจาก pecl

เมื่อทำการแก้ไข Config เรียบร้อยแล้วให้ทำการ Re-Start Apache Service

ทดสอบรันฟังก์ชัน

phpinfo

ถ้าปรากฎรายละเอียดดังรูปภาพด้านบน แสดงว่าการติดตั้งสมบูรณ์ สามารถทำการพัฒนา Web App สำหรับ Informix ด้วย PHP ได้ [หมายเหตุ รูปภาพตัดมาเฉพาะส่วนที่เกี่ยวข้องกับ PHP+Informix]

ทดลองโปรแกรมแรก
Test1.PHP

// สร้างการเชื่อมต่อไปยังฐานข้อมูล
$connection = ifx_connect("DBNAME@ServerName","Username","Password");

// ทดลองติดต่อไปยัง Informix
if (!$connection) {
echo "Couldn't make a connection!";
exit;
}

// ทดลอง Query จาก Table ที่มีอยู่จริงในฐานข้อมูลที่ระบุในขั้นตอนสร้าง Connection
$sql = "SELECT * FROM TableName";

// Excute Query สำหรับผลลัพธ์
$sql_result = ifx_query($sql,$connection);
//$row = ifx_fetch_row ($sql_result);
// แสดงผลลัพธ์ในรูปแบบตารางเป็น HTML
ifx_htmltbl_result($sql_result,"border=1");

// คืนค่าตัวแปรให้กับระบบ
ifx_free_result($sql_result);
ifx_close($connection);
?>

หวังว่าข้อมูลนี้จะเป็นประโยชน์ไม่มากก็น้อยกับผู้ที่เริ่มต้นเขียน PHP + IDS ผมก็มือใหม่เหมือนกัน สำหรับ DB ตัวนี้ จึงอยากเผยแพร่ข้อมูลและประสบการณ์ หวังว่าคงเป็นประโยชน์ไม่มากก็น้อยครับ