[บทความนี้แต่งขึ้นเมื่อ OCT 1999 โดย Rittichart S.]
การเขียนโปรแกรมแบบ Server Side บนเว็บนั้น ได้รับความนิยมอย่างแพร่หลายมากขึ้นในปัจจุบัน จากกระแส ความ popular ของการพัฒนาเว็บไซต์แบบ Dynamic ต่างจากการทำเว็บในสมัยก่อน ที่เพียง แค่เขียน html ของเพจแต่ละหน้า มี cgi นิดๆหน่อยๆ เฉพาะงานนั้นๆ.
ภาษา และ Tool สำหรับการทำ Dynamic website หลายตัว หลายยี่ห้อ ได้ถูกพัฒนาขึ้นมาอย่างรวดเร็วมากในยุคหลังๆ ไม่ว่าจะเป้น ASP,PHP,JSP,FastCGI และอื่นๆอีกมากมาย แต่ตัวที่ ผมกำลังสนใจ และ จะขอนำมาพูดถึงนั้น คือ Tool จากบริษัท Allaire ที่มีชื่อว่า ColdFusion ครับ.
สำหรับประวัติคร่าวๆของ มัน ก็ หึหึ.. จะรู้ไปทำไมเนี่ย.. ลองเอามาเล่นกันดูก่อนเถอะครับ. จริงๆข้อเสียของมันเนี่ยนะ ที่ผมเห็นชัดๆเลยคือ มันแพงหน่ะ มันไม่ฟรี. อาศัยที่บริษัทที่ผมทำงานอยู่ เค้ามีอยู่แล้ว ผมเลยได้เล่นมัน แต่ไม่ต้องกลัวมันก็มี Shareware version ให้ Downloadมาทดสอบกัน ลองไปโหลดมาลองเล่นดูครับ คลิ้กเล้ยย... หรือจะลองเอา version พิเศษ ที่เรียกว่า ColdFusion Expressมาลองเล่นดูก็ได้ อันนี้ ฟรีครับ แต่ จะจำกัดคุณสมบัติ คือ ใช้ได้ไม่เต็มร้อย แต่ใช้ได้เรื่อยๆ ไม่มีหมดอายุเหมือน version shareware แต่เท่าที่ผมดูมานี่ Feature สำคัญๆ เจ๋งๆ ก็ยังใช้ได้อยู่เหมือนเดิม.
สำหรับหลักการทำงานของมัน ก็ง่ายครับ จะว่าเหมือน ASP กับ PHP เลยก็ว่าได้ พอคุณ Install ColdFusion ลงไปแล้ว มัน ก็จะ ทำตัวเองเป็น ColdFusion Server ทำงานควบคู่กับ Web server ในเครื่องของคุณ ซึ่ง ปัจจุบัน ColdFusion สามารถรันได้ใน Windows , Solaris และ HPUX . ข่าวแว่วๆมาว่า ColdFusion for Linux กำลังจะออกเร็วๆนี้นะครับ.
เวลาเขียน code ของ ColdFusion นั้นเราจะใช้ภาษา ที่เรียกว่า CFML หรือ ColdFusion Markup Language. เป็นภาษาที่ง่ายมาก เหมือน html มากๆเลย คือ จะเป็น Tag เช่น
<CFOUTPUT> Hello world </CFOUTPUT>
คุณก็จะได้ หน้าเพจ ที่ โชว์ตัวหนังสือ ว่า ‘Hello world’ ง่ายมากใช่ไหม. ทีนี้ เวลาเขียนคุณก็สามารถที่จะแทรก Tag ต่างๆของ CFML ลงไปผสมกับ Tag ของ HTML ได้เลย อย่างที่ผมบอก ว่ามันเหมือน ASP กับ PHP มาก จริงๆแล้วผมยังคิดอยู่ว่า ASP กับ PHP น่าจะได้ Idea ในการแทรก code ลงไปใน Html เพจ มาจาก ColdFusion ซะมากกว่า เพราะ ColdFusion ออกมาก่อน ASP กับ PHP นานพอสมควรครับ.
เอาละผมว่าเรามาเริ่มทำอะไร เป็นชิ้นเป็นอันกันเลยดีกว่า. ก่อนจะเริ่ม คุณต้องดูให้แน่ใจก่อนนะครับว่า เครื่องของคุณได้ลง Web server เอาไว้แล้ว. แล้ว ก็ Install ColdFsion ไปเรียบร้อยแล้ว.
สำหรับ Spec ของเครื่องที่ ColdFusion ต้องการคือ
สำหรับ Windows 95 and 98, and Windows NT
- OS: Windows NT 3.51 (or higher) or Windows 95/98
- Processor: Intel 486 or higher (Pentium recommended)
- Disk space: 30MB
- Memory: 32MB
- Web server: A World Wide Web server (supporting NSAPI, ISAPI, or WSAPI recommended)
- Other: A CD-ROM drive
สำหรับ Solaris (Enterprise edition only)
- OS: Solaris 2.5.1 or 2.6 running on Sparc
- Memory: 128 MB
- Disk space: 120 MB for a full install
- Web server: Netscape Fast Track/Enterprise versions 2.01 or 3.0, 3.51 or Apache 1.2 or 1.3
- Other: A CD-ROM drive
สำหรับเครื่องที่ผมใช้ทดสอบอยู่นี่ ผมใช้ Pentium MMX 166, RAM 64, Windows 95 และ Personal Web server version2 ครับ (แบบ..ชอบของเก่าอ่ะนะ) อ้อ อย่าลืม เปลี่ยน mode ให้เว็บของคุณ EXECUTE ได้ด้วยนะ. ไม่งั้น Run ColdFusion ไม่ได้น่าเฮีย. สำหรับคนที่ใช้ Web Hosting คือไปเช่า Host เอาไว้เนี่ย ถ้าอยากเล่น ColdFusion ก็ลองถามเค้าดูด้วยนะครับว่า มีให้ใช้หรือเปล่า แล้วอย่าลืม เช็คด้วยว่า เขาจะ Set DSN (เพื่อต่อ Database) ให้ได้หรือไม่ และ มี TAG ของ ColdFusion อะไรบ้างที่ห้ามใช้.
ทีนี้ เรามาเริ่มต้นกันกับเรื่องพื้นๆ ก่อนนะครับ นั่นคือ การเขียน ColdFusion ให้ไปดึงข้อมูลมาจาก Database.
ขั้นแรก. สร้าง ดาต้าเบสขึ้นมาจาก Access .ตั้งชื่อไฟล์ว่า CF_test.mdb กำหนดให้มี Table 1 table ตั้งชื่อว่า Example001, สร้าง field ขึ้นมา 3 fields ดังนี้.
- ID, Date type = AutoNumber, Primary key
- Name, Date type = Text
- Email, Date type = Text
โอเค จากนั้นก็ใส่ข้อมูลลงไป เอาซักห้าชุด ก็แล้วกัน. ตามรูปนะครับ. อ้อ Email ในรูปผมมั่วขึ้นมาเอง ไม่มีจริงๆหรอก แฮ่ๆ แหม เอามาทดสอบเฉยๆ.
เอาละในเมื่อเราได้ ดาต้าเบสมาแล้ว ขั้นต่อไปก็ setup Data source name (DSN) ให้กับ ดาต้าเบสตัวนี้. (ใครที่ทำเป็นแล้ว ก็ข้ามไปได้เลย) วิธี ก็ไม่ยากหรอกครับ. เปิด Control Panel/ODBC จากนั้นเลือกที่ TAB System DSN, แล้วกดปุ่ม Add. ต่อมาก็เลือกที่ Microsoft Access Driver แล้วกดปุ่ม Finish. จากนั้นก็ตั้งชื่อ DSN ที่ต้องการลงในช่อง Data Source Name: เอาเป็นว่าเราจะใช้ DSN ชื่อว่า cftest1 แล้วกัน. จากนั้น ก็กด Select แล้วก็ Browse ไปหาไฟล์ ดาต้าเบสที่ ทำเอาไว้ตอนต้น เสร็จแล้ว กดโอเค ก็เรียบร้อย เสร็จสิ้นขั้นตอน Setup DSN
TIP: ขณะ setup DSN อยู่นั้น ตัวดาต้าเบส ที่เราจะใช้นั้น ไม่ควรจะถูกเปิดอยู่.
ทีนี้ ก็มาถึงขั้นตอนการเขียน code ซะที.. ดูตามข้างล่างเลย
<!– myFirstColdFusion.cfm –>
<CFQUERY Datasource =”cftest1″ Name =”FirstCF”>
SELECT Name, Email FROM Example001
</CFQUERY>
<html>
<head>
<title>My first ColdFusion</title>
</head>
<body bgcolor=”#FFFFFF”>
<ul>
<CFOUTPUT Query =”FirstCF”>
<li>#Name# (<a href =”mailto:#Email#“>#Email#</a>)</li>
</CFOUTPUT>
</ul>
</body>
</html>
คีย์ Code ตามที่เห้นด้านบนนะครับ แล้ว SAVE นามสกุล .cfm ดังเช่นตามตัวอย่าง ผม SAVE ไว้ในชื่อว่า myFirstColdFusion.cfm. อย่าลืม SAVE เอาไว้ในพื้นที่ๆ เตรียมเอาไว้ใน Web server แล้วต้องทำให้พื้นที่นั้น Execute หรือ Allow Program to be run ได้ด้วยครับ. จากนั้นก็เปิด Browser ของคุณขึ้นมา แล้วก็ทดสอบรันไฟล์ที่คุณเพิ่ง SAVE นี้ขึ้นมาเลย ผ่านทาง HTTP เช่น http://computername/myFirstColdFusion.cfm หรือ http://127.0.0.1/myFirstColdFusion.cfm ก็ได้ ถ้าไม่มีอะไรผิดพลาด คุณจะได้ผล ดังรูปด้านล่างนี้. Page จะดึงข้อมูลมาจาก Database แล้วมาจัดเรียง ตามที่เราเขียน Html กำหนดเอาไว้.
ทีนี้จะมาอธิบาย Code ด้านบนกัน ส่วนสีฟ้า คือส่วนที่เป็น ColdFusion Tag , สีแดง นั้นคือส่วนของ SQL ส่วนสีดำก็คือ HTML Tag ธรรมดา เราลองมาไล่ดู Code กัน
<CFQUERY Datasource =”cftest1″ Name =”FirstCF”>
</CFQUERY>
เป็นคำสั่งเพื่อที่จะทำการ ติดต่อกับตัวดาต้าเบส เพื่อที่จะส่ง SQL statement ไปทำการ Query ข้อมูลตามที่ต้องการ. ตามตัวอย่าง ผม SELECT field ออกมา 2 fields คือ Name และ Email จาก Table ชื่อว่า Example001. จะสังเกตุว่า Tag ของ ColdFusion นั้น เวลาเปิดแล้ว ต้องมีปิดเหมือนกับ Html Tag คือเมื่อเปิด <CFQUERY> จะต้องปิด </CFQUERY> ด้วยครับ. ส่วน Datasource = “cftest1” นั้น เป็นการระบุ DSN ลงไปเพื่อให้ ColdFusion รู้ว่าจะใช้ Database ตัวไหน ส่วน Name =”FirstCF” นั้น เป็นการตั้งชื่อให้กับการทำการ ครั้งนี้ เพื่อจะนำไป Refer ถึงในการแสดงข้อมูลต่อไป.
สำหรับในส่วนของการนำข้อมูลมาแสดงนั้น ColdFusion จะใช้ TAG ที่ชื่อว่า <CFOUTPUT> ถ้าดูจาก Code ด้านบน
<CFOUTPUT QUERY =”FirstCF”>
</CFOUTPUT>
คำสั่ง Query =”FirstCF” เป็นการกำหนดให้ <CFOUTPUT> นั้น รู้ว่า จะนำข้อมูลที่ได้มาจากการทำการที่ชื่อว่า FirstCF ที่เราทำไว้ตอนต้นรายการ (ยังกะรายการทำอาหารเนอะ)มาใช้.
สำหรับการนำข้อมูลจากการ Query Database มาโชว์นั้น เราสามารถระบุลงไปได้ โดยใช้สัญลักษณ์ (#) มาคลุมรอบ ชื่อของ Field ใน Database ที่คุณได้ SELECT เอาไว้จาก SQL statmet ที่ทำเอาไว้ใน <CFQUERY> ตัวอย่างเช่น #Name#, #Email#.
Tag <CFOUTPUT> นั้นจะทำการ Loop จดถึง Record สุดท้ายให้คุณเองโดยอัตโนมัติ แล้วนำข้อมูลทุก Record มาโชว์ ตามที่คุณต้องการ จาก การเขียน SQL statement ของคุณเอง.
ทั้งนี้และทั้งนั้น <CFOUTPUT> ก็ยังสามารถที่จะ Limit จำนวนข้อมูลไม่ให้โชว์ทุก Record ได้ด้วย คือเพิ่ม
<CFOUTPUT QUERY =”cftest” MAXROWS=”3″> ข้อมุลที่ถูกนำมาโชว์ก็จะถูก Limit ไว้ที่ สามชุดแรกที่ถูก Query ออกมา.
เห็นไหม ColdFusion ง่ายนี้ดเดียว… (ยากตรึมเรย.. ฮาา) ลองให้เวลาศึกษามันดู แล้วคุณจะรักมันเหมือนผม ในครั้งต่อไป เราจะมาว่ากันด้วยเรื่อง การ INSERT, UPDATE,DELETE และ SEARCH ดาต้าเบส ด้วย ColdFusion กันครับ
Download source code : webDB.zip