SlideShare a Scribd company logo
1 of 320
Download to read offline
(1)

คำนำ
ในปัจจุบันเทคโนโลยีสารสนเทศมีบทบาทในชีวิตประจาวันของเรามากขึ้นการที่จะสร้างระบบงานที่ใช้
ในองค์กรในลักษณะของการเขียนโปรแกรมบนเว็บ (Web Programming) เพื่อจัดเก็บข้อมูล และสืบค้นข้อมูล
ในระบบฐานข้อมูล การที่จะพัฒนาได้นั้น จาเป็นต้องมีผู้ชานาญในการพัฒนาระบบจึงจะทาให้ระบบนั้นมี
ประสิทธิภาพในการใช้งาน ดังนั้นเป้าหมายสาคัญของเอกสารตารา/หนังสือ เล่มนี้จึงต้องการเสริมสร้างทักษะ
ความรู้ให้กับนักศึกษาหรือผู้ที่สนใจ การเขียนโปรแกรมบนเว็บตั้งแต่เริ่มต้น จนถึงประยุกต์ใช้ในระดับมืออาชีพ
ต่อไป
การเขียนโปรแกรมบนเว็บนั้น มีภาษาที่ใช้สาหรับการพัฒนามีอยู่ด้วยกันหลายภาษา เช่น ASP, Perl,
JSP และ PHP เป็นต้น แต่ภาษาที่ได้รับความนิยมอย่างแพร่หลาย โดยสังเกตได้จากเว็บไซต์ส่วนใหญ่ เช่น
facebook.com และเว็บไซต์หน่วยงานภาครัฐและเอกชน ภาษา PHP นั้น เป็นภาษาสคริปต์ที่ทางานในฝั่ง
ของเครื่องแม่ข่าย (Server Side) เพื่อประมวลผลแล้วส่งกลับมายังเครื่องที่ร้องขอในลักษณะของภาษา HTML
ลักษณะสาคัญของภาษา PHP จะมีโครงสร้างที่ง่ายแก่การทาความเข้าใจ คล้ายกับภาษาซี (C Language) ซึ่ง
เหมาะกับ ผู้ เริ่ มต้ น พัฒ นา และยั งสามารถเขี ย นในลั กษณะของออบเจ็ค (OOP: Object Oriented
Programming) ได้อีกด้วย เหมาะสาหรับการย่อโค๊ดภาษาให้สั้นลง ฐานข้อมูลก็เป็นส่วนหนึ่งที่มีความสาคัญ
สาหรับการเขียนโปรแกรมบนเว็บด้วยภาษา PHP นั้น ตัวภาษา PHP เองสามารถติดต่อกับฐานข้อมูลหลาย
ชนิด เช่น Oracle, Progress, MS-Access และ MySQL เป็นต้น ใน หนังสือเล่มนี้จะใช้ฐานข้อมูล MySQL
สาหรับเรียนรู้และฝึกปฏิบัติ
หนั ง สื อ เล่ ม นี้ เ ขี ย นขึ้ น เพื่ อ ถ่ า ยทอดความรู้ แ ละประสบการณ์ ข องผู้ เ ขี ย น (จากประสบการณ์ สู่
ภาคปฏิบัติ) ประสบการณ์ของผู้เขียนนั้นได้มาจากงานสอน และพัฒนาเว็บ ด้วยภาษา PHP และ MySQL มา
โดยตลอด เป็นเวลานานไม่น้อยกว่า 10 ปี กลั่นจากใจสู่ผู้ที่สนใจ รวมถึง นิสิต นักศึกษา ที่มีความสนใจด้าน
การเขียนโปรแกรมหรือพัฒนาเว็บ นาไปศึกษาเรียนรู้ นาไปประยุกต์ใช้งานที่หลากหลายตามลักษณะงานที่
แตกต่าง ดังนั้นผู้เขียนจึงหวังว่า หลังการศึกษาเนื้อหาจากหนังสือเล่มนี้ทั้งหมดแล้ว ผู้อ่านจะสามารถนาความรู้
ไปใช้การโปรแกรมบนเว็บเพื่อใช้งานจริงต่อไป

ปริญญา น้อยดอนไพร
parinya-2008@hotmail.com
(2)
(3)

สำรบัญ
หน้ำที่
คำนำ .................................................................................................................................................... (1)
สำรบัญ ................................................................................................................................................. (3)
สำรบัญตำรำง ....................................................................................................................................... (9)
สำรบัญภำพ ........................................................................................................................................(11)
บทที่ 1 บทนำ .................................................................................................................................. 1
PHP คือ อะไร ............................................................................................................................. 1
PHP สามารถทาอะไรได้บ้าง ....................................................................................................... 1
ประวัติความเป็นมาของ PHP (History of PHP) ....................................................................... 2
PHP เวอร์ชัน 4 ........................................................................................................................... 3
PHP เวอร์ชัน 5 ........................................................................................................................... 4
PHP เวอร์ชัน 6 ........................................................................................................................... 5
MySQL คืออะไร ......................................................................................................................... 6
บทที่ 2 หลักกำรทำงำนของ PHP .................................................................................................. 11
AppServ คืออะไร .....................................................................................................................13
วิธีการติดตั้งโปรแกรม AppServ ...............................................................................................15
XAMPP คืออะไร ....................................................................................................................... 21
วิธีการติดตั้ง XAMPP บนระบบปฏิบัติ Windows ....................................................................22
การเลือกใช้เครื่องมือสาหรับการเขียนโค้ด (Choosing a Code Editor) ................................. 27
บทที่ 3 PHP เบื้องต้น .................................................................................................................... 31
การแทรกคาสั่งภาษา PHP ในเอกสาร HTML .......................................................................... 31
องค์ประกอบพื้นฐานของการเขียน PHP ................................................................................... 32
การแสดงผลข้อมูลผ่านเว็บบราวเซอร์ (Outputting Data to the Browser) ......................... 33
ชนิดข้อมูลที่รองรับใน PHP (PHP's Supported Datatypes) ................................................ 37
การแปลงชนิดข้อมูลโดยใช้ตัวแปร .......................................................................................... 40
การปรับเปลี่ยนชนิดข้อมูลแบบอัตโนมัติ (Adapting Datatypes with Type Juggling) ....... 41
ฟังก์ชันที่เกี่ยวข้องกับชนิดข้อมูล (Type-Related Function) ................................................ 41
ฟังก์ชันตรวจสอบชนิดของข้อมูล (Type Identifier Functions) ............................................ 43
คาสงวนของ PHP (Reserved Words) .................................................................................... 43
บทที่ 4 ตัวแปร ตัวดำเนินกำรและนิพจน์ (Variables, Operators and Expressions) .............. 45
(4)

สำรบัญ (ต่อ)
หน้ำที่
ตัวแปร (Variable) .................................................................................................................... 45
ขอบเขตของตัวแปร (Variable Scope) .................................................................................. 47
ตัวแปรพิเศษ (Super global Variables) ................................................................................ 41
ตัวแปรค่าคงที่ (Constants) ..................................................................................................... 53
ตัวแปรที่มีค่า Null .................................................................................................................... 54
การตรวจสอบและยกเลิกตัวแปร ............................................................................................... 55
ตัวดาเนินการ (Operators) และนิพจน์ (Expressions) ........................................................... 56
ตัวดาเนินการในการเชื่อมข้อความ (String) .............................................................................. 62
ตัวดาเนินการอื่น ๆ ....................................................................................................................66
บทที่ 5 โครงสร้ำงควบคุม (Control Structures) ....................................................................... 67
คาสั่งเงื่อนไข (Conditional Statements) .............................................................................. 67
คาสั่งทาซ้า (Looping Statements) ........................................................................................72
คาสั่งควบคุมอื่นๆ ที่เกี่ยวข้องกับคาสั่งทาซ้า (The Other Controls of Looping
Statements) ........................................................................................................................... 78
บทที่ 6 ฟังก์ชัน (Functions) ....................................................................................................... 81
ฟังก์ชัน ...................................................................................................................................... 81
การเรียกใช้งานฟังก์ชันมาตรฐานของ PHP ............................................................................... 82
การสร้างฟังก์ชัน (Creating a Function) ................................................................................ 82
การเรียกใช้ฟังก์ชันที่สร้างเอง .................................................................................................... 83
ฟังก์ชันแบบมีการส่งค่าพารามิเตอร์ .......................................................................................... 83
การส่งค่ากลับจากฟังก์ชันด้วยคาสั่ง return (Returning Values from a Function) ............86
ฟังก์ชันแบบเรียกตัวเอง (Recursive Functions) .................................................................... 87
ฟังก์ชันไลบรารี (Function Libraries) ..................................................................................... 88
บทที่ 7 อำร์เรย์ (Arrays) .............................................................................................................. 91
การสร้างอาร์เรย์ (Create arrays) ............................................................................................ 91
การเข้าถึงข้อมูลภายในอาร์เรย์ ................................................................................................. 95
ฟังก์ชันอื่นๆ ที่เกี่ยวกับอาร์เรย์ ................................................................................................. 98
ฟังก์ชันในการเพิ่มสมาชิกในอาร์เรย์ ......................................................................................... 98
ฟังก์ชันในการลบสมาชิกในอาร์เรย์ ......................................................................................... 101
(5)

สำรบัญ (ต่อ)
หน้ำที่
ฟังก์ชันในการนับจานวนสมาชิกในอาร์เรย์ ............................................................................. 102
ฟังก์ชันในการเรียงลาดับข้อมูลในอาร์เรย์ที่มีอินเด็กซ์เป็นตัวเลข ............................................ 104
ฟังก์ชันที่ใช้ในการเรียงลาดับข้อมูลในอาร์เรย์ที่มีอินเด็กซ์เป็นตัวอักษรหรือข้อความ ............. 105
ฟังก์ชันที่ใช้สาหรับการจัดการพอยเตอร์ (Pointer) ในอาร์เรย์ ............................................... 108
ฟังก์ชันสาหรับการรวมอาร์เรย์ ................................................................................................108
ฟังก์ชันสาหรับการสลับค่าระหว่างอินเด็กซ์หรือคีย์กับค่าข้อมูลในอาร์เรย์ ..............................110
ฟังก์ชันสาหรับการค้นหาอินเด็กซ์หรือคีย์และค่าข้อมูลในอาร์เรย์ .......................................... 110
ฟังก์ชันสาหรับการหาค่าข้อมูลสมาชิกที่เหมือนและแตกต่างกันในอาร์เรย์ ............................ 111
การใช้ข้อมูลจากอาร์เรย์ $_SERVER ...................................................................................... 112
การใช้ข้อมูลจากอาร์เรย์ $_FILE ............................................................................................ 114
บทที่ 8 สตริง ตัวเลข และเวลำ ................................................................................................... 117
ฟังก์ชันเกี่ยวกับสตริง .............................................................................................................. 117
ฟังก์ชันเกี่ยวกับรหัสแอสกี (ASCII) ......................................................................................... 117
ฟังก์ชันเกี่ยวกับการหาขนาดของสตริง ................................................................................... 118
ฟังก์ชันในการเปลี่ยนรูปแบบของตัวพิมพ์ ............................................................................... 119
ฟังก์ชันเกี่ยวกับการแยก และรวมข้อความหรือสตริง ............................................................. 121
ฟังก์ชันเกี่ยวกับข้อความหรือสตริงย่อย .................................................................................. 122
ฟังก์ชันในการค้นหาข้อความหรือสตริง .................................................................................. 124
ฟังก์ชันในการแทนที่ข้อความหรือสตริง ................................................................................. 125
ฟังก์ชันในการตัดช่องว่างและเติมข้อความหรือสตริง .............................................................. 127
ฟังก์ชันเกี่ยวกับอักขระพิเศษของ HTML ................................................................................ 129
ฟังก์ชันเกี่ยวกับจานวนและตัวเลข .......................................................................................... 130
ฟังก์ชันเกี่ยวกับวันเวลา (Date and Time) ............................................................................132
การจัดการกับวันที่และเวลาแบบ Greenwich Mean Time (GMT) ..................................... 139
บทที่ 9 กำรจัดกำรไฟล์และไดเรกทอรี ......................................................................................... 145
การอ้างถึง Document Root .................................................................................................145
การอ้างอิงพาธแบบ Absolute ............................................................................................... 145
การอ้างอิงพาธแบบ Relative ................................................................................................. 146
การจัดการกับไฟล์ ................................................................................................................... 147
(6)

สำรบัญ (ต่อ)

บทที่ 10

บทที่ 11

บทที่ 12

บทที่ 13

หน้ำที่
การจัดการกับไดเรกทอรี ......................................................................................................... 159
การอัพโหลดไฟล์ ..................................................................................................................... 164
ฟังก์ชันการหาขนาด และชนิดของไฟล์ .................................................................................. 167
กำรจัดกำรข้อมูลจำกฟอร์ม ............................................................................................. 169
ลักษณะของฟอร์ม ...................................................................................................................169
คานิยามและการใช้งานแท็ก form ..........................................................................................170
การจัดการข้อมูลจากฟอร์มในฝั่งเซิร์ฟเวอร์ .............................................................................179
การส่งข้อมูลแบบอาร์เรย์ .........................................................................................................183
คุกกี้ เซสชั่น และกำรเชื่อมโยงระหว่ำงเพจ ..................................................................... 185
เฮดเดอร์ (Header) ................................................................................................................. 185
การส่งข้อมูลระหว่างเพจแบบ Query String ......................................................................... 186
การจัดเก็บข้อมูลแบบคุกกี้ ...................................................................................................... 187
การจัดเก็บข้อมูลแบบเซสชัน ...................................................................................................189
กำรเขียนโปรแกรมแบบ OOP .........................................................................................197
คลาส (Class) ..........................................................................................................................197
การนาคลาสมาใช้ในสคริปต์ PHP ........................................................................................... 198
ออบเจ็กต์ และอินสแตนซ์ ....................................................................................................... 198
เมธอด (Method) ................................................................................................................... 199
โมดิฟายเออร์ (Modifier) แบบ public และ private ............................................................ 201
ค่าคงที่ (Constant) .................................................................................................................204
คอนสตรักเตอร์ (Constructor) .............................................................................................. 205
โมดิฟายเออร์ Static ............................................................................................................... 206
การสืบทอด (Inheritance) ..................................................................................................... 208
กำรใช้เทคนิค AJAX ร่วมกับ PHP .................................................................................. 211
AJAX (Asynchronous JavaScript and XML) ....................................................................211
ประวัติความเป็นมา ................................................................................................................. 212
ที่มาของปัญหา ........................................................................................................................ 212
โครงสร้างของ AJAX ............................................................................................................... 213
การทางานของ AJAX ..............................................................................................................214
(7)

สำรบัญ (ต่อ)
หน้ำที่
การใช้ AJAX Framework ..................................................................................................... 215
ฟังก์ชันที่ใช้จัดการข้อมูล ......................................................................................................... 218
แนวทางการพัฒนา AJAX Application ................................................................................219
ปัญหาภาษาไทยใน AJAX ....................................................................................................... 220
การส่งผลลัพธ์กลับมาเป็น JavaScript ....................................................................................220
การอัปเดทอินพุต Select ด้วยเทคนิค AJAX ......................................................................... 224
อีเวนต์ (Event) ....................................................................................................................... 228
การกาหนดอีเวนต์ ................................................................................................................... 230
ออบเจ็กต์อีเวนต์ (Object Event) .......................................................................................... 231
อีเวนต์เกี่ยวกับเมาส์ ................................................................................................................ 232
อีเวนต์เกี่ยวกับคีย์บอร์ด .......................................................................................................... 233
บทที่ 14 ฐำนข้อมูล MySQL และกำรใช้งำน phpMyAdmin ...................................................... 241
คาสั่งพื้นฐานของ MySQL .......................................................................................................241
ลักษณะองค์ประกอบของฐานข้อมูล ....................................................................................... 243
ชนิดข้อมูลของคอลัมน์ ............................................................................................................ 244
แอททริบิวต์ของคอลัมน์ .......................................................................................................... 246
การสร้างฐานข้อมูล ................................................................................................................. 247
การสร้างตารางฐานข้อมูล ....................................................................................................... 247
การแทรก ปรับปรุง ลบ และเรียกดูข้อมูลในตาราง .................................................................251
จัดการฐานข้อมูลด้วย phpMyAdmin ....................................................................................256
การเริ่มต้นใช้งาน phpMyAdmin ...........................................................................................256
การลบฐานข้อมูล และตาราง .................................................................................................. 263
ส่วนของการใช้คาสั่ง SQL ....................................................................................................... 263
ส่วนของการค้นหา .................................................................................................................. 264
ส่วนของการกาหนดสิทธิ์ ......................................................................................................... 264
บทที่ 15 กำรใช้ PHP ร่วมกับ MySQL ..........................................................................................265
การใช้ PHP ร่วมกับ MySQL................................................................................................... 265
ฟังก์ชันสาหรับเชื่อมต่อ/ยกเลิกการเชื่อมต่อระหว่าง PHP และ MySQL ................................265
ฟังก์ชันสาหรับการเลือกฐานข้อมูล ..........................................................................................267
(8)

สำรบัญ (ต่อ)
หน้ำที่
การส่งคาสั่ง SQL ไปยังฐานข้อมูล ...........................................................................................268
การอ่านข้อมูลผลลัพธ์ ............................................................................................................. 269
การแก้ไขข้อมูลภาษาไทยกลายเป็น "?????...." ........................................................................272
การตรวจสอบการเปลี่ยนแปลงข้อมูล ......................................................................................272
การตรวจสอบข้อผิดพลาดระหว่างการทางานร่วมกับ MySQL .............................................. 275
การตรวจสอบชื่อฐานข้อมูลและตาราง ................................................................................... 275
การตรวจสอบโครงสร้างของขอบเขตข้อมูล ............................................................................ 277
บทที่ 16 กรณีศึกษำ: ระบบจัดกำรสมำชิก ..................................................................................... 281
โปรเซสการทางานของระบบจัดการสมาชิก ............................................................................ 281
อธิบายการทางานของระบบ ................................................................................................... 281
สร้างฐานข้อมูลและตาราง ...................................................................................................... 282
รายละเอียดของไฟล์ที่เกี่ยวข้อง .............................................................................................. 282
บรรณำนุกรม ...................................................................................................................................... 305
(9)

สำรบัญตำรำง
ตำรำงที่
3.1
3.2
3.3
4.1
4.2
4.3
4.4
4.5
4.6
4.7
7.1
7.2
7.3
7.4
7.5
8.1
8.2
8.3
8.4
8.5
8.6
8.7
9.1
9.2
9.3
9.4
9.5
10.1
10.2

หน้ำที่
แสดงตัวกาหนดชนิดการแสดงผลที่ใช้ร่วมกับคาสั่ง printf ( ) ...................................................35
ตัวดาเนินการแปลงชนิดของข้อมูล (Type Casting Operators) ............................................. 40
คาสงวนของ PHP ......................................................................................................................44
ตัวดาเนินการพื้นฐานสาหรับการคานวณ .................................................................................. 57
ตัวดาเนินการสาหรับการกาหนดค่า .......................................................................................... 58
ตัวดาเนินการสาหรับเพิ่ม และลดค่า ......................................................................................... 59
ตัวดาเนินการสาหรับการเปรียบเทียบ ....................................................................................... 60
ตัวดาเนินการสาหรับการเปรียบเทียบทางตรรกะ ......................................................................60
ลาดับความสาคัญของตัวดาเนินการ .......................................................................................... 62
Escape Sequence ..................................................................................................................63
แสดงตัวอย่างข้อมูลแบบอาร์เรย์ และแสดงตาแหน่งของอินเด็กซ์ ............................................ 91
แสดงผลสรุปฟังก์ชันที่ใช้สาหรับเรียงลาดับข้อมูลในอาร์เรย์ที่มีอินเด็กซ์เป็นตัวอักษร ............ 107
สรุปฟังก์ชันที่ใช้สาหรับการจัดการพอยเตอร์ในอาร์เรย์ .......................................................... 108
แสดงค่าอินเด็กซ์หรือคีย์ของอาร์เรย์ $_SERVER .................................................................... 113
แสดงค่าอินเด็กซ์หรือคีย์ของอาร์เรย์ $_FILE .......................................................................... 114
ฟังก์ชันเกี่ยวกับรหัสแอสกี .......................................................................................................117
ฟังก์ชันในการตัดช่องว่าง .........................................................................................................128
ฟังก์ชันเกี่ยวกับการประมาณค่า ..............................................................................................130
ฟังก์ชันในการเปรียบเทียบจานวน .......................................................................................... 131
ฟังก์ชันการตรวจสอบ และจัดรูปแบบตัวเลข .......................................................................... 131
ฟังก์ชันเพิ่มเติมอื่นๆ ................................................................................................................ 132
อาร์เรย์แบบ Key/Value ที่ได้จากการใช้ฟังก์ชัน getdate ( ) ............................................... 137
ขั้นตอนการเขียนและอ่านข้อมูลในไฟล์ ...................................................................................147
ไฟล์โหมด ................................................................................................................................ 147
ฟังก์ชันที่ใช้ตรวจสอบเกี่ยวกับไฟล์ .......................................................................................... 158
ฟังก์ชันที่ใช้ตรวจสอบเวลาที่เกี่ยวข้องกับไฟล์ ......................................................................... 158
ค่าคีย์ของตัวแปร $_FILES ......................................................................................................165
ตัวรับข้อมูลที่สาคัญของฟอร์ม .................................................................................................169
แสดงแอตทริบิวต์เฉพาะแท็ก form ........................................................................................ 170
(10)

สำรบัญตำรำง (ต่อ)
ตำรำงที่
10.3
10.4
10.5
10.6
10.7
10.8
10.9
10.10
13.1
13.2
13.3
14.1
14.2
14.3
14.4
14.5
14.6
14.7
14.8
16.1
16.2

หน้ำที่
แสดงแอตทริบิวต์เฉพาะแท็ก input ....................................................................................... 172
แสดงแอตทริบิวต์เฉพาะแท็ก textarea .................................................................................. 174
แสดงแอตทริบิวต์เฉพาะแท็ก label ........................................................................................175
แสดงแอตทริบิวต์เฉพาะแท็ก legend .................................................................................... 175
แสดงแอตทริบิวต์เฉพาะแท็ก select ...................................................................................... 176
แสดงแอตทริบิวต์เฉพาะแท็ก OPTGROUP ............................................................................ 177
แสดงแอตทริบิวต์เฉพาะแท็ก OPTION ...................................................................................178
แสดงแอตทริบิวต์เฉพาะแท็ก button .................................................................................... 178
แสดงอีเวนต์ของ JavaScript สาหรับกาหนดให้กับอิลิเมนต์ .................................................. 229
แสดงอีเวนต์ของ JavaScript แบบพร็อปเพอร์ตี้ .................................................................... 231
แสดงตัวอย่างรหัสที่ใช้แทนปุ่มคีย์บอร์ด ..................................................................................234
แสดงชนิดข้อมูลของ MySQL ชนิดตัวเลข .............................................................................. 244
แสดงชนิดข้อมูลของ MySQL ชนิดสตริง ................................................................................ 245
แสดงชนิดข้อมูลของ MySQL ชนิด BLOB ............................................................................. 245
แสดงชนิดข้อมูลของ MySQL ชนิด SET และ ENUM ............................................................ 245
แสดงชนิดข้อมูลของ MySQL ชนิดวันเวลา ............................................................................ 246
แสดงแอททริบิวต์ของคอลัมน์ใน MySQL ............................................................................... 246
แสดงโอเปอร์เรเตอร์ที่ใช้งานร่วมกับคาสั่ง WHERE ................................................................ 254
แสดงฟังก์ชัน Aggregate สาหรับใช้ร่วมกับ GROUP BY ....................................................... 255
ตารางข้อมูล tblcatmember ................................................................................................ 282
ตารางข้อมูล tblmember ...................................................................................................... 282
(11)

สำรบัญภำพ
ภำพที่
1.1
1.2
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
2.11
2.12
2.13
2.14
2.15
2.16
2.17
2.18
2.19
2.20
2.21
2.22
2.23
2.24
2.25
2.26

หน้ำที่
ผู้ร่วมพัฒนา PHP ........................................................................................................................ 2
ผู้ร่วมพัฒนา MySQL ...................................................................................................................6
รูปแบบการติดต่อสื่อสารระหว่างเว็บบราวเซอร์และเว็บเซิร์ฟเวอร์ผ่านโปรโตคอล HTTP ........12
รูปแบบการติดต่อสื่อสารระหว่างเว็บบราวเซอร์และเว็บเซิร์ฟเวอร์เพื่อเรียกเว็บเพจธรรมดา ... 12
การร้องขอการใช้งานจากไคลเอ็นท์ ไปยังเครื่องที่ให้บริการเป็น Web Server engine
ของ PHP ................................................................................................................................... 13
ภาณุพงศ์ ปัญญาดี ผู้พัฒนา AppServ ......................................................................................13
ขั้นตอนการติดตั้งโปรแกรม AppServ .......................................................................................16
แสดงรายละเอียดเงื่อนไขการ GNU License ........................................................................... 16
เลือกปลายทางการติดตั้งโปรแกรม AppServ ........................................................................... 17
เลือก Package Components ที่ต้องการติดตั้ง .......................................................................17
แสดงการกาหนดค่าคอนฟิกค่า Apache เว็บเซิร์ฟเวอร์ ........................................................... 18
แสดงการกาหนดค่าคอนฟิกของ MySQL Database ............................................................... 19
แสดงการดาเนินการติดตั้งโปรแกรม AppServ ......................................................................... 19
แสดงหน้าจอขั้นตอนสิ้นสุดการติดตั้งโปรแกรม AppServ ........................................................ 20
แสดงการสตาร์ทโปรแกรม Apache และ MySQL ...................................................................20
แสดงผลการทางานของ AppServ บนหน้าเว็บบราวเซอร์ ........................................................20
แสดงโฟลเดอร์องค์ประกอบต่างๆ ที่สาคัญของ AppServ ........................................................ 21
kai 'oswald' seidler ผู้พัฒนา XAMPP ................................................................................... 22
ขั้นตอนการติดตั้ง XAMPP ........................................................................................................ 22
ขั้นตอนการติดตั้ง XAMPP ในส่วนของการสร้าง Shortcut ใน Start menu และ Desktop...23
ขั้นตอนการติดตั้ง XAMPP ในส่วนของการทวนถามความถูกต้องของตาแหน่งติดตั้ง ............... 23
ขั้นตอนการติดตั้ง XAMPP ในส่วนของการติดตั้ง portable แบบ without drive letters..... 24
ขั้นตอนการติดตั้ง XAMPP แสดงผลการดาเนินการติดตั้ง XAMPP แบบพกพา ....................... 24
ขั้นตอนการติดตั้ง XAMPP ในส่วนของการปรับโซนเวลาในไฟล์ php.ini และ my.ini ............ 25
ขั้นตอนการติดตั้ง XAMPP ในส่วนของการปรับเปลี่ยนการใช้งานเพิ่มเติม ............................... 25
แสดงขั้นตอนการเปิด XAMPP Control Panel ....................................................................... 25
แสดงหน้าจอ XAMPP Control Panel เพื่อควบคุมโปรแกรมต่างๆ ที่เกี่ยวข้อง ......................26
แสดงผลการทางานของ XAMPP บนหน้าเว็บบราวเซอร์ .......................................................... 26
(12)

สำรบัญภำพ (ต่อ)
ภำพที่
2.27
2.28
4.1
5.1
5.2
5.3
5.4
5.5
5.6
7.1
8.1
9.1
10.1
10.2
10.3
10.4
10.5
10.6
10.7
10.8
10.9
10.10
11.1
13.1
13.2
13.3
14.1
14.2
14.3

หน้ำที่
แสดงการสร้างโฟลเดอร์เก็บเอกสารเว็บเพจของ XAMPP ........................................................ 26
แสดงการบันทึกไฟล์ลงในโฟลเดอร์เก็บเอกสารเว็บเพจของ XAMPP เพื่อทดสอบและใช้งาน... 27
แสดงตัวอย่างตัวดาเนินการและนิพจน์ ......................................................................................58
แสดงแผนภาพการไหล (Flow Chart) ของคาสั่ง if .................................................................. 68
แสดงแผนภาพการไหลของคาสั่ง if ... else .............................................................................. 69
แสดงแผนภาพการไหลของคาสั่ง if ... elseif ............................................................................ 70
แสดงแผนภาพการไหลของคาสั่ง while ................................................................................... 72
แสดงแผนภาพการไหลของคาสั่ง do ... while ......................................................................... 73
แสดงแผนภาพการไหลของคาสั่ง for ........................................................................................ 74
แสดงหน้าเว็บเพจสาหรับเริ่มต้น Upload ไฟล์ ...................................................................... 115
แสดงตัวอย่างผลลัพธ์การสร้างปฏิทินออนไลน์ ....................................................................... 143
แสดงการเปิดไฟล์รูปภาพ ........................................................................................................ 156
แสดงตัวอย่างตัวรับข้อมูลของฟอร์ม ....................................................................................... 170
แสดงตัวอย่างผลลัพธ์ของฟอร์มโดยใช้แท็ก input ชนิด "Text" ............................................. 172
แสดงตัวอย่างผลลัพธ์ของการใช้แท็ก textarea ......................................................................173
แสดงตัวอย่างผลลัพธ์ของการใช้แท็ก label ............................................................................174
แสดงตัวอย่างผลลัพธ์ของการใช้แท็ก fieldset ในการจัดกลุ่มของแท็ก input .......................175
แสดงตัวอย่างผลลัพธ์ของการใช้แท็ก OPTION ภายในแท็ก select ...................................... 176
แสดงตัวอย่างผลลัพธ์ของการใช้แท็ก OPTGROUP ................................................................ 177
แสดงตัวอย่างผลลัพธ์ของการใช้แท็ก OPTION ภายในแท็ก select ...................................... 177
แสดงตัวอย่างผลลัพธ์ของการใช้แท็ก button ........................................................................ 178
แสดงการจัดการข้อมูลจากฟอร์มทางด้านเซิร์ฟเวอร์ ...............................................................179
สร้างฟอร์มสาหรับการ Login กรณีศึกษาและประยุกต์ใช้งานเซสชั่น .....................................194
เปรียบเทียบการทางานแบบเดิม กับ AJAX ............................................................................ 213
โครงสร้างของ AJAX ในปัจจุบัน ............................................................................................. 213
หลักการทางานของ AJAX ...................................................................................................... 214
หน้าล็อกอินเพื่อเข้าสู่ระบบของ phpMyAdmin เวอร์ชัน 3.5.4 ............................................ 257
หน้าเพจหลังจากล็อกอินเข้าสู่ระบบ phpMyAdmin เวอร์ชัน 3.5.4 ..................................... 257
แสดงขั้นตอนการสร้างฐานข้อมูลใหม่ ..................................................................................... 258
(13)

สำรบัญภำพ (ต่อ)
ภำพที่
14.4
14.5
14.6
14.7
14.8
14.9
14.10
14.11
14.12
14.13
14.14
14.15
14.15

หน้ำที่
แสดงขั้นตอนการสร้างตารางใหม่ ........................................................................................... 258
แสดงขั้นตอนการสร้างขอบเขตข้อมูลในตาราง ....................................................................... 259
แสดงขั้นตอนการสร้างตารางและกาหนดขอบเขตข้อมูลในตาราง .......................................... 259
แสดงขั้นตอนการแทรกข้อมูลลงในตาราง ............................................................................... 260
แสดงตัวอย่างรายการสาหรับการแทรกข้อมูลลงในตาราง ...................................................... 260
แสดงขั้นตอนการอ่านข้อมูลในตาราง ......................................................................................261
แสดงขั้นตอนการเลือกข้อมูลเพื่อแก้ไขข้อมูล .......................................................................... 261
แสดงขั้นตอนการเลือกข้อมูลเพื่อลบข้อมูล ..............................................................................262
แสดงตัวอย่างการเลือกข้อมูลเพื่อแก้ไขโครงสร้างข้อมูล ..........................................................262
แสดงตัวอย่างการลบข้อมูลในตารางและลบตาราง ................................................................. 263
แสดงตัวอย่างการใช้คาสั่ง SQL ผ่าน "Run SQL Query" ...................................................... 263
แสดงตัวอย่างการใช้คาสั่ง SQL ผ่าน "Run SQL Query" เพื่อค้นหาข้อมูล ........................... 264
แสดงตัวอย่างการใช้คาสั่ง SQL ผ่าน "Run SQL Query" เพื่อกาหนดสิทธิ์ ........................... 264
บทที่ 1
บทนำ
PHP คืออะไร
PHP ย่อมาจาก ''PHP Hypertext Preprocessor'' เป็นภาษา Server-Side
Script อีกภาษาหนึ่งเช่นเดียวกันกับ ASP ที่มีการทางานที่เครื่องคอมพิวเตอร์ฝั่ง
Server ซึ่งรูปแบบในการเขียนคาสั่งการทางานนั้นจะมีลักษณะคล้ายกับภาษา Perl
หรือภาษา C และสามารถใช้ร่วมงานกันกับ ภาษา HTML ได้อย่างมีประสิทธิภาพ
หมำยเหตุ ในการสร้างเว็บจะใช้ Script อยู่ 2 รูปแบบคือ
Server-Side Script เป็นลักษณะการทางานบนเครื่อง Server และแปลออกมาเป็นภาษา HTML เช่น
PHP, ASP, CGI
Client-Side Script เป็นลักษณะการทางานบนเครื่อง Client (เครื่องผู้ใช้) เช่น JavaScript, VBScript
PHP สำมำรถทำอะไรได้บ้ำง
ความสามารถของ PHP นั้นสามารถที่จะทางานในลักษณะ Dynamic Web ได้ทุกรูปแบบ
เหมือนกับ CGI หรือ ASP ไม่ว่าจะเป็นการจัดการดูแลระบบฐานข้อมูล ระบบรักษาความปลอดภัย การรับ
– ส่ง Cookies โดยที่ PHP นั้นสามารถที่จะติดต่อกับโปรแกรมจัดการฐานข้อมูลที่มีอยู่มากมาย ดังนี้
Adabas D
InterBase Solid
Microsoft Access
DBase
mSQL
Sybase
Empress
MySQL
Velocis
FilePro
Oracle
Unix dbm
Informix
PostgreSQL
MS SQL Server
แต่ความสามารถที่พิเศษกว่านี้ก็คือ PHP สามารถที่จะติดต่อกับบริการต่างๆ ผ่านทางโพรโตคอล
(Protocol) เช่น IMAP, SNMP, NNTP, POP3, HTTP และยังสามารถติดต่อกับ Socket ได้อีกด้วย
2 บทที่ 1 บทนา
ประวัติควำมเป็นมำของ PHP (History of PHP)

Rasmus Lerdorf

Zeev Suraski
Andi Gutmans
ภำพที่ 1.1 ผู้ร่วมพัฒนา PHP
ที่มา: http://lerdorf.com/pics/rl.jpg ,
http://tec20ten.files.wordpress.com/2010/02/dsc_0156-copy.jpg
และ http://tech.ccidnet.com/col/attachment/2010/6/2037287.jpg
(W. Jason Gilmore: 2) PHP ถูกคิดค้นขึ้นมาในปี 1995 โดยนักพัฒนาที่ชื่อว่า Rasmus
Lerdorf แต่เดิมนั้นเขาได้พัฒนาเว็บเพจของเขาเองเพียงเพื่อแนะนาประวัติส่วนตัวออนไลน์ของเขาด้วย
ภาษาสคริปต์ Perl/CGI แต่ภาษาสคริปต์ดังกล่าวค่อนข้างยุ่งยากและมีข้อจากัด เป็นเหตุเริ่ มต้นให้เขา
พัฒนาภาษาสคริปต์ใหม่ ง่ายต่อการพัฒนา ในช่วงเริ่มต้นพัฒนานั้น ทาหน้าที่เพียง 2 ประการเท่านั้น คือ
1)เพื่อต้องการทราบถึงผู้เข้าชมเว็บของเขามากน้อยเพียงใด และ 2)เพื่อแสดงผลจานวนผู้เข้าชมเว็บเพจ
เครื่องมือในครั้งนั้นเขาได้ตั้งชื่อว่า PHP-toolset (Personal Home Page toolset)
PHP-toolset มีเสียงตอบรับจากผู้ใช้งานเป็นจานวนมาก และเขายังคงพัฒนาอย่างต่อเนื่องมี
การปรับแต่งการแปลงและส่งข้อมูลตัวแปรผ่าน HTML form และเปลี่ยนภาษาที่ใช้ในการพัฒนา โดยใช้
ภาษาซี (C Language) แทนภาษา Perl และเผยแพร่ผลงานของเขาในเดือนพฤศจิกายน ค.ศ.1997 เป็น
เวอร์ชัน PHP 2.0 หรือรู้จักกันในนาม Personal Home Page/Form Interpreter (PHP/FI) และได้เสียง
ตอบรับที่ดีจากเหล่าโปรแกรมเมอร์ทั่วโลก
PHP เวอร์ชันใหม่ ได้มีการเปลี่ยนแปลงและมีทีมพัฒนาทีมงาน คือ Zeev Suraski และ Adni
Gutmans ทาการวิเคราะห์พื้นฐานของ PHP/FI แต่ยังคงแนวคิดเดิม คือ ทางานผสมผสานร่วมกับภาษา
HTML และเพิ่มความสมบูรณ์ของภาษา PHP มากขึ้น เป็นเวอร์ชัน 3 และเผยแพร่ในเดือนมิถุนายน ค.ศ.1998
PHP ได้มีการพัฒนาอย่างต่อเนื่องมีหลายร้อยฟังก์ชั นที่เพิ่มเข้ามาและจานวนผู้ใช้ที่กาลังเติบโต
ในปี 1999 บริษัท Netcraft (http://www.netcraft.com/) ได้ทาการวิจัยทางอินเทอร์เน็ตและวิเคราะห์
ข้อมูล จากรายงานพบว่า มีผู้ใช้งานภาษา PHP มากกว่า 1 ล้านเว็บไซต์ ทาให้ PHP ได้รับความนิยมมาก
ที่สุด และทีมพัฒนา Zeev Suraski และ Andi Gutmans ได้มีความคิดริเริ่มต้องการให้ PHP ทาการ
ปริญญา น้อยดอนไพร || การเขียนโปรแกรมบนเว็บด้วย PHP ร่วมกับฐานข้อมูล MySQL
บทที่ 1 บทนา 3
ประมวลผลได้เร็วขึ้นในลักษณะ parser PHP เพื่อแยกประมวลผล ร่วมกับ Zend Engine ของบริษัท
Zend Technology จากัด (http://www.zend.com/) เป็นเครื่องมือหลักในการขับเคลื่อนสาคัญ ผลได้
เป็น PHP เวอร์ชัน 4
PHP เวอร์ชัน 4
เมื่อวันที่ 22 พฤษภาคม ค.ศ.2000 ประมาณ 18 เดือน หลังจากที่เผยแพร่ใช้งาน PHP เวอร์ชัน
4 อย่างเป็นทางการ หลายคนถือว่าภาษา PHP เป็นภาษาที่มีเสถียรภาพสูงภาษาหนึ่งและได้รับความนิยม
อย่างแพร่หลาย ราวๆ ช่วงปลายเดือน บริษัท Netcraft ได้ประมาณการว่า PHP จะมีผู้นาไปติดตั้งและใช้
งาน ประมาณ 3.6 ด้านโดเมน (Domain) สาหรับ PHP เวอร์ชัน 4 ได้เพิ่มและปรับปรุงคุณสมบัติ
ดังต่อไปนี้
กำรจัดกำรทรัพยำกรที่ดีขึ้น (Improved resource handling)
ปรับแก้หนึ่งในปัญหาหลักของเวอร์ชัน 3 ให้มีความยืดหยุ่น สามารถนาไปออกแบบและ
ประยุกต์ใช้กับระบบงานขนาดใหญ่ ในเวอร์ชันก่อนหน้าไม่ได้มีเจตนาจะใช้ในองค์กรขนาดใหญ่ แต่เนื่อง
ด้วยมีการใช้อย่างกว้างขวางและประโยชน์ ทาให้ผู้ พัฒ นาได้คิดและพัฒ นาภาษาให้ส ามารถใช้งานได้
หลากหลาย
สนับสนุนกำรเขียนโปรแกรมเชิงวัตถุ (Object-oriented support)
PHP เวอร์ชัน 4 สามารถพัฒนาระบบในลักษณะของการเขียนโปรแกรมเชิงวัตถุ ซึ่งมีฟังก์ชันที่ช่วย
ในการทางาน แต่ยังไม่ครอบคลุมการทางานมากเท่าไหร่ อย่างไรก็ตามคุณสมบัติใหม่มีบทบาทสาคัญและ
ดึงดูดให้ผู้ใช้งานหรือนักพัฒนาระบบ ที่ต้องการพัฒนาโปรแกรมเชิงวัตถุแบบดั้งเดิม หรือเรียกว่า ภาษา OOP
นอกจากนั้นยังมีคุณสมบัติ เช่น ระบบแจ้งเตือน overloading และ run-time class ที่ช่วยป้องกันปัญหา
เวลาพัฒนาระบบ สาหรับการเขียนโปรแกรมเชิงวัตถุที่สมบูรณ์แบบนั้น ควรใช้ PHP เวอร์ชัน 5
สนับสนุนกำรจัดกำรเซสชั่น (Native session-handling support)
การจัดการเซสชั่น HTTP ใช้ได้กับทั้งในเวอร์ชัน 3.x โดยผู้ใช้สามารถเรียกใช้งานผ่านบน phplib
(http://phplib.sourceforge.net) แต่สาหรับเวอร์ชัน 4 ผู้ใช้งานสามารถใช้งานได้เลย ซึ่งได้รวม
ความสามารถไว้แล้ว คุณลักษณะนี้ได้มาจากการสารวจกิจกรรมและความพึงพอใจของผู้ใช้ส่วนใหญ่
กำรเข้ำรหัส (Encryption)
นาไลบรารี่มาจาก MCrypt (http://mcrypt.sourceforge.net) มารวมไว้ใน PHP เวอร์ชัน 4
ก่อนการเผยแพร่ ผู้ใช้สามารถเลือกใช้รูปแบบการเข้ารหัสได้แบบ hash โดยมีอัลกอริทึมที่ได้รวมไว้ ได้แก่
Blowfish, MD5, SHA1 และ TripleDES ฯลฯ
สนับสนุน ISAPI (ISAPI support)
สนับสนุน ISAPI ให้ผู้ใช้สามารถใช้ PHP ร่วมกับเว็บเซิร์ฟเวอร์ของไมโครซอฟท์ คือ IIS และ
Apache เว็บเซิร์ฟเวอร์
ปริญญา น้อยดอนไพร || การเขียนโปรแกรมบนเว็บด้วย PHP ร่วมกับฐานข้อมูล MySQL
4 บทที่ 1 บทนา
สนับสนุน COM / DCOM (Native COM/DCOM support)
เปิดโอกาสให้ผู้ใช้งานสามารถเรียกใช้และทางานร่วมกันกับโปรแกรมประยุกต์บนระบบปฏิบัติ
Windows
สนับสนุนกำรทำงำนร่วมกับภำษำ Java (Native Java support)
PHP เวอร์ชัน 4 ได้เพิ่มประสิทธิภาพในการทางานร่วมกับภาษา Java
รองรับไวยำกรณ์และนิพจน์ภำษำ Perl (Perl Compatible Regular Expressions (PCRE)
library)
ภาษา Perl เป็นภาษาที่มีความยาวและซับซ้อน มีรูปประโยคที่เป็นอิสระ แต่การทางานของภาษา
Perl เป็นภาษาที่ยอมรับอย่างกว้างขวาง มีประสิทธิภาพการ และมีบทบาทสาคัญ ดังนั้น PHP เวอร์ชัน 4
ได้รวม ฟังก์ชันการทางานของภาษา Perl ไว้ด้วย เพื่อเป็นทางเลือกหนึ่งสาหรับการพัฒนาระบบ และทา
ให้ใช้งานได้ง่ายขึ้น
นอกจากคุณสมบัติต่างๆ เหล่านี้ ยังมีอีกหลายร้อยฟังก์ชันที่ถูกเพิ่มเข้ามาใน PHP เวอร์ชัน 4
รองรับความหลากหลาย ไลบรารี่ และโมดูลดีๆ มากมาย จากแหล่งต่างๆ เปิดใจรับสิ่งดีๆ ที่มีอยู่ มากมาย
ในสากล นามาเพิ่มขีดความสามารถของตัวเอง หลายร้อยฟังก์ชันเหล่านี้จะกล่าวถึงรายละเอียดการใช้งาน
ต่อไปในหนังสือเล่มนี้ ผู้แต่งหนังสือเล่มนี้หวังเป็นอย่างยิ่งว่า ผู้อ่านจะเปิดใจรับสิ่งดีๆ ที่มอบให้แล้วนาไป
พัฒนาตนเองให้มีความรู้ความสามารถ เพิ่มประสิทธิภาพแก่ตนเอง เหมือนดังเช่น PHP
PHP เวอร์ชัน 5
PHP เวอร์ชัน 5 ยังคงวิวัฒนาการไม่หยุดยั้งถึงแม้ว่ารุ่นก่อนหน้าจะมีความสามารถมากมาย
มหาศาลโดยการเพิ่มฟังก์ชัน ไลบรารี่ และอื่นๆ อีกมากมาย มาถึง PHP เวอร์ชัน 5 ซึ่งมีการปรับปรุงอีก
มากมายเช่นเดิม เพิ่มคุณสมบัติอีกหลายประการ ผู้แต่งเองยังใช้ความสามารถของเวอร์ชัน 4 ยังไม่หมด
เวอร์ชัน 5 ก็ออกมาทาหัวใจหวั่นไหวใคร่รู้
PHP 5 มีการปรับปรุงความสามารถเพิ่มเติมขึ้นมาจาก PHP 4 มากมาย ในหัวข้อนี้จะกล่าวถึง
ความสามารถที่สาคัญหลัก ๆ ที่เพิ่มเติมขึ้นมาใน PHP 5 ดังนี้
1. ความสามารถทางด้าน OOP (Object-Oriented Programming) ความสามารถทางด้านการ
เขียนโปรแกรมเชิงวัตถุหรือ OOP ได้มีมาตั้งแต่ PHP 3 แล้ว และได้ปรับปรุงต่อเนื่องมาจนถึง PHP 4 แต่
ความสามารถทางด้าน OOP ใน PHP 4 นั้นยังไม่สมบูรณ์นักและยังขาดฟีเจอร์ที่สาคัญในหลายด้าน เช่น
การประกาศ Constructors และ Destructors การกาหนดขอบเขตของตัวแปรและเมธอดเป็น public,
protected, private เป็นต้น โดยใน PHP 5 ได้ปรับปรุงความสามารถทางด้าน OOP ให้สมบูรณ์ขึ้น ทา
ให้โปรแกรมเมอร์สามารถเขียน PHP โดยใช้หลักการของ OOP ได้อย่างสมบูรณ์แบบ
2. เพิ่ม MySQLi Extension MySQL นั้นเป็นระบบจัดการฐานข้อมูลที่ได้รับความนิยมในการ
นามาพัฒนา Web Application ร่วมกับ PHP มานาน โดยใน MySQL เวอร์ชัน 4.1 และเวอร์ชัน 5 ได้
ปริญญา น้อยดอนไพร || การเขียนโปรแกรมบนเว็บด้วย PHP ร่วมกับฐานข้อมูล MySQL
บทที่ 1 บทนา 5
เพิ่มเติมฟีเจอร์ที่สาคัญมากมาย เช่น Prepared statement การเชื่อมต่อฐานข้อมูลโดยใช้ SSL การใช้
Multi-query, Transaction เป็นต้น ดังนั้น PHP 5 จึงได้มีการเพิ่ม MySQL Extention ขึ้นมาใหม่โดยใช้
ชื่อว่า MySQLi จะช่วยให้สามารถนาความสามารถใหม่ ๆ ของ MySQL ออกมาใช้ได้อย่างเต็มที่
3. ผนวก SQLite ไว้ใน PHP แม้ว่า MySQL จะเป็นระบบจัดการฐานข้อมูลที่ได้รับความนิยมและ
นามาใช้ร่วมกับ PHP มากที่สุด แต่ใน PHP 5 นั้นได้ผนวกรวมเอา SQLite ซึ่งเป็นระบบจัดการฐานข้อมูล
ขนาดเล็กเข้าไว้ด้วย โดยที่ผู้ใช้ไม่ต้องติดตั้งระบบจัดการฐานข้อมูลเพิ่มเติมก็สามารถเขียนโปรแกรม PHP
เพื่อติดต่อกับฐานข้อมูลได้เลย ซึ่งช่วยอานวยความสะดวกในการเขียนโปรแกรมได้มากทีเดียว
4. สนับสนุน XML และ SOAP อย่างเต็มประสิทธิภาพ ใน PHP 5 มีการปรับปรุงความสามารถ
ของ XML เพิ่มเติมโดยจะมีไลบรารี libxml2 ซึ่งเป็นไลบรารีมาตรฐานที่ PHP ใช้ติดต่อกับ XML
นอกจากนี้ยังปรับปรุงและเพิ่มเติมในส่วนของ DOM(Document Object Model), XSLT (Extensible
Stylesheet Language Transformations) และ SimpleXML โดยการออกแบบให้สามารถทางาน
ร่วมกับ XML ได้ดียิ่งขึ้น นอกจากนี้ใน PHP 5 ยังสนับสนุน SOAP ซึ่งเป็นส่วนประกอบสาคัญในการ
พัฒนาเว็บเซอร์วิส
5. การตรวจจับและจั ดการข้อผิดพลาด ใน PHP 5 มีการพัฒนาระบบตรวจจับและจัดการ
ข้อผิดพลาดขึ้นมา เรียกว่า exception handling ซึ่งจะคล้ายกับที่มีในภาษา Java และ C++ ซึ่งจะช่วย
อานวยความสะดวกและเพิ่มประสิทธิภาพในการตรวจสอบและจัดการข้อผิด พลาดที่อาจจะเกิดขึ้ นในการ
รันโปรแกรมได้
6. เพิ่ม Iterator Iterator ใน PHP 5 เป็นการใช้คาสั่ง foreach ในการวนลูปร่วมกับข้อมูลชนิด
ต่าง ๆ ได้หลายชนิด ไม่ว่าจะเป็นอ็อบเจ็กต์ต่าง ๆ เอกสาร XML โครงสร้างไดเรกทอรี่หรือผลลัพธ์จากการ
query ฐานข้อมูล เป็นต้น
เป็นอย่างไรกันบ้างครับกับความสามารถใหม่ ๆ ของ PHP 5 คงทาให้ผู้อ่านเห็นภาพรวมที่ชัดเจน
ขึ้นและหลายคนอาจจะอยากทดลองใช้กันบ้างแล้ว ซึ่ง นอกจากความสามารถหลัก ๆ ทั้ง 6 ข้อที่ได้อธิบาย
ไว้ข้างต้น PHP 5 ยังมีความสามารถที่เพิ่มเติมขึ้นใหม่อีกมากมายที่ยังไม่ได้อธิบายไว้ ณ ที่นี้ เช่น การใช้
ส่วนขยายเพิ่มเติม Tidy เพื่อให้มั่นใจได้ว่าผลลัพธ์ที่แสดงออกมานั้นอยู่รูปแบบของ HTML หรือ XHTML
ที่ถูกต้อง การจัดการหน่วยความจาที่ดีขึ้นรวมไปถึงการปรับปรุงและแก้ไขข้อผิดพลาดเดิมใน PHP 4 อีก
หลายจุดให้ดียิ่งขึ้น
PHP เวอร์ชัน 6
PHP เวอร์ชัน 6 ปัจจุบันกาลังอยู่ในขั้นพัฒนาและปรับปรุงขณะนี้ยังเป็น Beta Version ยังคงใช้
Zend engine เป็นแกนหลัก การเปลี่ยนแปลงที่สาคัญ คือ
1. ไม่มีคุณสมบัติ register_global, magic_quote_gpc และ safe_mode

ปริญญา น้อยดอนไพร || การเขียนโปรแกรมบนเว็บด้วย PHP ร่วมกับฐานข้อมูล MySQL
6 บทที่ 1 บทนา
2. ยกเลิกตัวแปร HTTP_*_VARS ทั้งหมด เช่น HTTP_POST_VARS และ HTTP_COOKIE_VARS
เป็นต้น
3. สนับสนุนการทางานกับสตริงแบบ Unicode
4. เพิ่มชนิดข้อมูลเลขจานวนเต็มขนาด 64 บิต
MySQL คืออะไร
MySQL
เป็ น ระบบจั ด การฐานข้ อ มู ล เชิ ง สั ม พั น ธ์
(Relational Database Management System) โดยใช้ภาษา
SQL แม้ว่า MySQL เป็นซอฟต์แวร์โอเพนซอร์ส แต่แตกต่างจาก
ซอฟต์แวร์โอเพนซอร์สทั่วไป โดยมีการพัฒนาภายใต้บริษัท MySQL
AB ในประเทศสวีเดน โดยจัดการ MySQL ทั้งในแบบที่ให้ใช้ฟรี
และแบบที่ใช้ในเชิงธุรกิจ
MySQL สร้างขึ้นโดยชาวสวีเดน 3 คน และชาวฟินแลนด์ ชื่อ David Axmark, Allan Larsson
และ Michael "Monty" Widenius.

David Axmark

Allan Larsson
Michael "Monty" Widenius
ภำพที่ 1.2 ผู้ร่วมพัฒนา MySQL
ที่มา: http://www.mccullagh.org/db9/10d-1/david-axmark-mysql.jpg
http://www.wire2011.eu/upload/participant/290/Allan_Larsson.JPG
และ http://www.abclinuxu.cz/images/screenshots/2/1/150712-ulf-michael-montywidenius-13235.jpg
ปัจจุบันบริษัทซันไมโครซิสเต็มส์ (Sun Microsystems, Inc.) เข้าซื้อกิจการของ MySQL AB
เรียบร้อยแล้ว ฉะนั้นผลิตภัณฑ์ภายใต้ MySQL AB ทั้งหมดจะตกเป็นของบริษัทซันไมโครซิสเต็มส์
ชื่อ "MySQL" อ่านออกเสียงว่า "มายเอสคิวเอล" (maɪˌɛskjuːˈɛl) หรือ "มายเอสคิวแอล"
(ในการอ่านอักษร L ในภาษาไทย) ซึ่งทางซอฟต์แวร์ไม่ได้อ่าน มายซีเควล หรือ มายซีควล เหมือนกั บ
ซอฟต์แวร์จัดการฐานข้อมูลตัวอื่น

ปริญญา น้อยดอนไพร || การเขียนโปรแกรมบนเว็บด้วย PHP ร่วมกับฐานข้อมูล MySQL
บทที่ 1 บทนา 7
รุ่นของผลิตภัณฑ์
รุ่นของผลิตภัณฑ์นั้นแบ่งออกมาได้ 3 สายการผลิ ต ได้แก่ เวอร์ชันใช้ฟรี เวอร์ชันการค้า และ
เวอร์ชันที่สนับสนุนกับผลิตภัณฑ์ SAP (MAX DB) ความแตกต่าง คือ เวอร์ชัน community นั้นสามารถ
นาไปใช้งานได้ฟรีแต่ขาดการสนับสนุนหรือการช่วยเหลือเมื่อมีปัญหาเกิดขึ้น เวอร์ชันที่เป็นคอมเมอร์เชียลนั้น
ให้บริการด้านความสนับสนุนเมื่อมีปัญหา (ซื้อบริการ) สรุปคร่าวๆ ประเภทของ MySQL ให้เลือกใช้ดังนี้
MySQL Enterprise
MySQL Cluster
MySQL Embedded
MySQL Community (opensource)
ควำมสำมำรถที่เพิ่มขึ้น
ในเวอร์ชัน 5.0 มีความสามารถหลายอย่างที่สาคัญสาหรับระบบฐานข้อมูลขนาดใหญ่หรือระดับ
องค์กร (Enterprise Feature) เช่น Store Procedure, database trigger, database view,
database schema ซึ่งได้มีการปรับเพิ่มประสิทธิภาพในส่วนของตารางและการทาดัชนี (index) ขึ้นมา
อีก ปัจจุบันเวอร์ชัน community หรือเวอร์ชันที่เสถียร (stable) 5.0 และเวอร์ชันทดสอบคือ 5.1 beta
release และ 5.2 Alpha
ตั้งแต่เวอร์ชัน 5.1 เริ่มสนับสนุนการทา Partition Database ตารางเวลาสาหรับเหตุการณ์ต่างๆ
(Event schedule)
ประเภทกำรจัดเก็บข้อมูล (Database Storage Engine) ที่สนับสนุน
MyISAM ค่าปกติ (default)
InnoDB สนับสนุนการทา ทรานแซคชั่น (transaction) แบบ ACID
Memory การจัดเก็บในหน่วยความจา ใช้เป็นตารางชั่วคราวเพื่อความรวดเร็ว เนื่องจากเก็บไว้ใน
หน่วยความจา ทาให้มีความเร็วในการทางานสูงมาก
Merge เป็นการรวม Table หลาย ๆ ตัวให้แสดงผล หรือแก้ไข เสมือนเป็นข้อมูลจาก Table เดียว
Archive เหมาะสาหรับการจัดเก็บข้อมูลพวก log file,ข้อมูลที่ไม่ต้องมีการ คิวรี่ (query) หรือใช้
บ่อยๆ เช่น log file เพื่อประโยชน์ในการตรวจสอบย้อนหลัง (Security Audit Information)
Federated สาหรับการจัดเก็บแบบปลายทาง (remote server) แทนที่จะเป็นการจัดเก็บแบบ
local เหมือนการจัดเก็บ (Storage) แบบอื่นๆ
NDB สาหรับการจัดเก็บแบบ คลัสเตอร์ (cluster)
CSV เก็บข้อมูลจาก Text ไฟล์โดยอาศัยเครื่องหมาย คอมมา (comma) เป็นตัวแบ่งฟิลด์
ชนิดของข้อมูลที่สนับสนุน
ข้อมูลชนิดตัวเลข

ปริญญา น้อยดอนไพร || การเขียนโปรแกรมบนเว็บด้วย PHP ร่วมกับฐานข้อมูล MySQL
8 บทที่ 1 บทนา
 BIT ใช้สาหรับเก็บข้อมูลชนิดเลขสองที่มีสัญลักษณ์เพียงสองตัว ประกอบด้วย 0 (ศูนย์)
กับ 1 (หนึ่ง) บางครั้งอาจหมายถึงการที่มีโอกาสเลือกได้เพียง 2 ทาง เช่น ปิดกับเปิด
ไม่ใช่กับใช่ เท็จกับจริง ซ้ายกับขวา เป็นต้น
 TINYINT ใช้สาหรับจัดเก็บข้อมูลชนิดตัวเลขจานวนเต็ม ขนาด 8 บิต
 SMALLINT ใช้สาหรับเก็บข้อมูลชนิดตัวเลขจานวนเต็ม ขนาด 16 บิต
 MEDIUMINT ใช้สาหรับเก็บข้อมูลชนิดตัวเลขจานวนเต็ม ขนาด 24 บิต
 INT ใช้สาหรับเก็บข้อมูลชนิดตัวเลขจานวนเต็ม ขนาด 32 บิต
 BIGINT ใช้สาหรับเก็บข้อมูลชนิดตัวเลขจานวนเต็ม ขนาด 64 บิต
 FLOAT ใช้สาหรับเก็บข้อมูลชนิดตัวเลขจานวนจริง (เลขที่มเศษทศนิยม) ขนาด 32 บิต
ี
 DOUBLE ใช้สาหรับเก็บข้อมูลชนิดตัวเลขจานวนจริง เช่นเดียวกับ FLOAT ขนาด 64 บิต
ข้อมูลชนิดวันที่และเวลา
 DATETIME ใช้สาหรับจัดเก็บข้อมูล วันเดือนปีและเวลา ขนาด 64 บิต แสดงผลใน
รูปแบบ YYYY-MM-DD HH:MM:SS
 DATE ใช้สาหรับจัดเก็บข้อมูลเฉพาะข้อมูลวันเดือนปี ขนาด 24 บิต แสดงผลในรูปแบบ
YYYY-MM-DD
 TIME ใช้สาหรับจัดเก็บข้อมูลเฉพาะข้อมูลเวลา ขนาด 24 บิต แสดงผลในรูปแบบ
HHH:MM:SS โดยที่ HHH จะคืน ค่าจาก -838 ถึง 838
 TIMESTAMP ใช้สาหรับเก็บข้อมูลชนิดวันที่และเวลา เช่นเดียวกับ DATETIME แต่จะ
เก็ บ ในรู ป แบบของ YYYYMMDDHHMMSS หรื อ YYMMDDHHMMSS หรื อ
YYYYMMDD หรือ YYMMDD แล้วแต่ว่าจะระบุค่าแอตทริบิวต์ TIMESTAMP[(M)] โดย
กาหนด M เป็น 14 หรือ 12 หรือ 8
 YEAR ใช้สาหรับเก็บข้อมูลปีเท่านั้น ขนาด 8 บิต แสดงผลในรูปแบบ YYYY ซึ่งเป็นค่า
ตั้งแต่ 1901 - 2155 เท่านั้น
ข้อมูลชนิดสตริง
 CHAR ใช้สาหรับเก็บข้อมูลชนิดสตริง ขนาดสูงสุดได้ไม่เกิน 255 อักขระ ถ้าอักขระที่ใช้
ยาวไม่เท่ากับที่กาหนดไว้ อักขระที่เหลือ จะถูกแทนที่ด้วยช่องว่าง
 VARCHAR (ย่อมาจาก Variable Character Field หมายถึง กลุ่มข้อมูลตัวอักขระที่ไม่
สามารถระบุความยาวได้ ) ใช้สาหรับเก็บข้อมูลชนิดสตริง ชนิดข้อมูลประเภท varchar
สามารถเก็บข้อมูลตัวอักขระขนาดเท่าใดก็ได้ที่ไม่เกินความยาวที่จากัดไว้ (เก็บข้อมูล
ตามที่รับมาจริงเท่านั้น) ขนาดสูงสุดได้ไม่เกิน 255 อักขระ

ปริญญา น้อยดอนไพร || การเขียนโปรแกรมบนเว็บด้วย PHP ร่วมกับฐานข้อมูล MySQL
บทที่ 1 บทนา 9
 BINARY ใช้ส าหรั บ เก็บข้อมูล ชนิดเลขสองที่มีสั ญลั กษณ์เพียงสองตัว เหมือน BIT
ประกอบด้วย 0 (ศูนย์) กับ 1 (หนึ่ง) บางครั้งอาจหมายถึงการที่มีโอกาสเลือกได้เพียง 2
ทาง เช่น ปิดกับเปิด ไม่ใช่กับใช่ เท็จกับจริง ซ้ายกับขวา เป็นต้น
 VARBINARY ใช้สาหรับเก็บข้อมูลชนิดสตริง ขนาดสูงสุดไม่เกิน 8,000 อักขระ มีลักษณะ
การเก็บคล้าย VARCHA คือ การเก็บข้อมูลตามที่รับมาจริงเท่านั้น
 TINYTEXT ใช้สาหรับเก็บข้อมูลชนิดสตริง ขนาดสูงสุดไม่เกิน 255 อักขระ สามารถใช้
งานฟีเจอร์ FULL TEXT SEARCH ของ MySQL
 TEXT ใช้สาหรับเก็บข้อมูลชนิดสตริง เช่นเดียวกับ TINYTEXT ขนาดสูงสุดไม่เกิน 65,535
อักขระ (64 KB) เหมาะสาหรับเก็บข้อมูลจาพวกเนื้อหาทีมีความยาวหรือจานวนมาก
่
 MEDIUMTEXT ใช้สาหรับเก็บข้อมูลชนิดสตริง เช่นเดียวกับ TINYTEXT ขนาดสูงสุดไม่
เกิน 16,777,215 อักขระ (16 MB)
 LONGTEXT ใช้สาหรับเก็บข้อมูลชนิดสตริง เช่นเดียวกับ TINYTEXT ขนาดสูงสุดไม่เกิน
4,294,967,295 อักขระ (4 GB)
 ENUM ใช้สาหรับ เก็บ เซตของข้อมูลชุดหนึ่งที่มีจานวนสมาชิกที่กาหนดไว้แน่นอน
และทราบค่าทุกตัว มักจะเป็นข้อมูลที่มีลักษณะคงที่ ขนาดสูงสุดไม่เกิน 65,535 อักขระ
 SET ใช้สาหรับเก็บข้อมูลที่เป็นกลุ่มของข้อมูลที่ยอมให้เลือกได้ 1 ค่าหรือหลายๆ ค่า ซึ่ง
สามารถกาหนดได้ถึง 64 ค่า
ข้อมูลชนิด BLOB (Binary Large Object)
 TINYBLOB ใช้สาหรับเก็บข้อมูลชนิดไบนารี ได้แก่ ไฟล์ข้อมูลต่างๆ เช่น ไฟล์รูปภาพ
ไฟล์มัลติมีเดีย เป็นต้น คือ ไฟล์อะไรก็ตามที่อัพโหลดผ่านฟอร์มอัพโหลดไฟล์ในภาษา
HTML ขนาดสูงสุดไม่เกิน 256 ไบต์
 BLOB ใช้สาหรับเก็บข้อมูลชนิดไบนารี เช่นเดียวกับ TINYBLOB ขนาดสูงสุดได้ไม่เกิน
64,000 ไบต์
 EDIUMBLOB ใช้สาหรับเก็บข้อมูลชนิดไบนารี เช่นเดียวกับ TINYBLOB ขนาดสูงสุดได้
ไม่เกิน 16 เมกะไบต์ (16 MB)
 LONGBLOB ใช้สาหรับเก็บข้อมูลชนิดไบนารี เช่นเดียวกับ TINYBLOB ขนาดสูงสุดได้ไม่
เกิน 4 กิกะไบต์ (4 GB)
หมำยเหตุ
การกาหนดชนิด ค่าสูงสุด ค่าต่าสุด และตัวอย่างการใช้งาน สามารถอ่านรายละเอียดเพิ่มเติม ได้
ในบทที่ 14 เรื่องฐานข้อมูล MySQL และการใช้งาน phpMyAdmin

ปริญญา น้อยดอนไพร || การเขียนโปรแกรมบนเว็บด้วย PHP ร่วมกับฐานข้อมูล MySQL
10 บทที่ 1 บทนา
กำรใช้งำน
MySQL เป็นที่นิยมใช้กันมากสาหรับฐานข้อมูลสาหรับเว็บไซต์ เช่น มีเดียวิกิ และ phpBB และ
นิยมใช้งานร่วมกับภาษาโปรแกรม PHP เป็นหลัก ดังนั้นจะเห็นได้จากคู่มือคอมพิวเตอร์ต่างๆ ที่จะสอน
การใช้งาน MySQL และ PHP ควบคู่กันไป นอกจากนี้ หลายภาษาโปรแกรมที่สามารถทางานร่วมกับ
ฐานข้อมูล MySQL และรวมถึง ภาษาซี (C Language) ซีพลัสพลัส (C++) ซีชาร์ป (C#) ปาสคาล
(Pascal) ภาษาจาวา (Java Language) ภาษาเพิร์ล (Perl Language) พีเอชพี (PHP) ไพทอน (Python)
รูบี (Ruby) และภาษาอื่น ใช้งานผ่าน API สาหรับโปรแกรมที่ติดต่อผ่าน ODBC หรือ ส่วนเชื่อมต่อกับ
ภาษาอื่น (database connector) เช่น ASP สามารถเรียกใช้ MySQL ผ่านทาง MyODBC, ADO,
ADO.NET เป็นต้น

ปริญญา น้อยดอนไพร || การเขียนโปรแกรมบนเว็บด้วย PHP ร่วมกับฐานข้อมูล MySQL
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru
Book sru

More Related Content

What's hot

หน่วยการเรียนรู้ที่ 6
หน่วยการเรียนรู้ที่ 6หน่วยการเรียนรู้ที่ 6
หน่วยการเรียนรู้ที่ 6arachaporn
 
Joomla คืออะไร
Joomla คืออะไรJoomla คืออะไร
Joomla คืออะไรkrudaojar
 
Course Syllabus การเขียนโปรแกรมบนเว็บ
Course Syllabus การเขียนโปรแกรมบนเว็บ Course Syllabus การเขียนโปรแกรมบนเว็บ
Course Syllabus การเขียนโปรแกรมบนเว็บ Khon Kaen University
 
เริ่มต้นกับ PHP
เริ่มต้นกับ PHPเริ่มต้นกับ PHP
เริ่มต้นกับ PHPEKNARIN
 
โปรแกรมประยุกต์บนเว็บ
โปรแกรมประยุกต์บนเว็บโปรแกรมประยุกต์บนเว็บ
โปรแกรมประยุกต์บนเว็บanuchit025
 
คู่มือ Joomla
คู่มือ Joomlaคู่มือ Joomla
คู่มือ JoomlaJatupon Panjoi
 
งานครูปลาม์
งานครูปลาม์งานครูปลาม์
งานครูปลาม์0908067327
 
คู่มือJavascript and Python
คู่มือJavascript and Pythonคู่มือJavascript and Python
คู่มือJavascript and PythonBongkotporn Jachernram
 
สร้างเว็บไซต์ด้วยWordpress
สร้างเว็บไซต์ด้วยWordpressสร้างเว็บไซต์ด้วยWordpress
สร้างเว็บไซต์ด้วยWordpresskruburapha2012
 
ความรู้เบื้องต้นเกี่ยวกับภาษาPhp
ความรู้เบื้องต้นเกี่ยวกับภาษาPhpความรู้เบื้องต้นเกี่ยวกับภาษาPhp
ความรู้เบื้องต้นเกี่ยวกับภาษาPhpKwanJai Cherubstar
 
Dreamweaver แนะโปรแกรมและวิธีใช้
Dreamweaver แนะโปรแกรมและวิธีใช้Dreamweaver แนะโปรแกรมและวิธีใช้
Dreamweaver แนะโปรแกรมและวิธีใช้Webidea Petchtharat
 
PHP & Dreamweaver ch02 dw_installation
PHP & Dreamweaver  ch02 dw_installationPHP & Dreamweaver  ch02 dw_installation
PHP & Dreamweaver ch02 dw_installationWebidea Petchtharat
 
Javacentrix com chap05-0
Javacentrix com chap05-0Javacentrix com chap05-0
Javacentrix com chap05-0Theeravaj Tum
 
Javacentrix com chap08-0
Javacentrix com chap08-0Javacentrix com chap08-0
Javacentrix com chap08-0Theeravaj Tum
 

What's hot (20)

หน่วยการเรียนรู้ที่ 6
หน่วยการเรียนรู้ที่ 6หน่วยการเรียนรู้ที่ 6
หน่วยการเรียนรู้ที่ 6
 
Joomla คืออะไร
Joomla คืออะไรJoomla คืออะไร
Joomla คืออะไร
 
Course Syllabus การเขียนโปรแกรมบนเว็บ
Course Syllabus การเขียนโปรแกรมบนเว็บ Course Syllabus การเขียนโปรแกรมบนเว็บ
Course Syllabus การเขียนโปรแกรมบนเว็บ
 
เริ่มต้นกับ PHP
เริ่มต้นกับ PHPเริ่มต้นกับ PHP
เริ่มต้นกับ PHP
 
Php
PhpPhp
Php
 
โปรแกรมประยุกต์บนเว็บ
โปรแกรมประยุกต์บนเว็บโปรแกรมประยุกต์บนเว็บ
โปรแกรมประยุกต์บนเว็บ
 
คู่มือ Joomla
คู่มือ Joomlaคู่มือ Joomla
คู่มือ Joomla
 
งานครูปลาม์
งานครูปลาม์งานครูปลาม์
งานครูปลาม์
 
Https
HttpsHttps
Https
 
คู่มือJavascript and Python
คู่มือJavascript and Pythonคู่มือJavascript and Python
คู่มือJavascript and Python
 
สร้างเว็บไซต์ด้วยWordpress
สร้างเว็บไซต์ด้วยWordpressสร้างเว็บไซต์ด้วยWordpress
สร้างเว็บไซต์ด้วยWordpress
 
Joomla CMS
Joomla CMSJoomla CMS
Joomla CMS
 
ความรู้เบื้องต้นเกี่ยวกับภาษาPhp
ความรู้เบื้องต้นเกี่ยวกับภาษาPhpความรู้เบื้องต้นเกี่ยวกับภาษาPhp
ความรู้เบื้องต้นเกี่ยวกับภาษาPhp
 
HTML5 Startup
HTML5 StartupHTML5 Startup
HTML5 Startup
 
Dreamweaver แนะโปรแกรมและวิธีใช้
Dreamweaver แนะโปรแกรมและวิธีใช้Dreamweaver แนะโปรแกรมและวิธีใช้
Dreamweaver แนะโปรแกรมและวิธีใช้
 
E book4
E book4E book4
E book4
 
PHP & Dreamweaver ch02 dw_installation
PHP & Dreamweaver  ch02 dw_installationPHP & Dreamweaver  ch02 dw_installation
PHP & Dreamweaver ch02 dw_installation
 
Joomla3 : XAMPP Portable
Joomla3 : XAMPP PortableJoomla3 : XAMPP Portable
Joomla3 : XAMPP Portable
 
Javacentrix com chap05-0
Javacentrix com chap05-0Javacentrix com chap05-0
Javacentrix com chap05-0
 
Javacentrix com chap08-0
Javacentrix com chap08-0Javacentrix com chap08-0
Javacentrix com chap08-0
 

Viewers also liked

เกมส์และเว็บไซต์ที่ชื่นชอบ วิชาปฏิสัมพันธ์ระหว่างมนุษย์
เกมส์และเว็บไซต์ที่ชื่นชอบ วิชาปฏิสัมพันธ์ระหว่างมนุษย์เกมส์และเว็บไซต์ที่ชื่นชอบ วิชาปฏิสัมพันธ์ระหว่างมนุษย์
เกมส์และเว็บไซต์ที่ชื่นชอบ วิชาปฏิสัมพันธ์ระหว่างมนุษย์Arrat Krupeach
 
คู่มือการบันทึกคะแนน
คู่มือการบันทึกคะแนนคู่มือการบันทึกคะแนน
คู่มือการบันทึกคะแนนArrat Krupeach
 
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลGatesiree G'ate
 
Peer visit with SECI Model
Peer visit with SECI ModelPeer visit with SECI Model
Peer visit with SECI Modelburin rujjanapan
 
Mac os x power point ฉบับสมบูรณ์ pdf
Mac os x power point ฉบับสมบูรณ์ pdfMac os x power point ฉบับสมบูรณ์ pdf
Mac os x power point ฉบับสมบูรณ์ pdfJane Jitpakan
 
ฐานข้อมูลนะสอน
ฐานข้อมูลนะสอนฐานข้อมูลนะสอน
ฐานข้อมูลนะสอนsariya25
 
Mac os x power point ฉบับสมบูรณ์
Mac os x power point ฉบับสมบูรณ์Mac os x power point ฉบับสมบูรณ์
Mac os x power point ฉบับสมบูรณ์Jane Jitpakan
 
รายงานประชุมศิษย์เก่าอัสสัมชัญลำปาง 19#19
รายงานประชุมศิษย์เก่าอัสสัมชัญลำปาง 19#19รายงานประชุมศิษย์เก่าอัสสัมชัญลำปาง 19#19
รายงานประชุมศิษย์เก่าอัสสัมชัญลำปาง 19#19burin rujjanapan
 
How to Upload iOS App (IPA file) to iTunes Connect
How to Upload iOS App (IPA file) to iTunes ConnectHow to Upload iOS App (IPA file) to iTunes Connect
How to Upload iOS App (IPA file) to iTunes ConnectPakawat Kuljan
 
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูลบทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูลRungnapa Rungnapa
 
ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์กราฟิก
ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์กราฟิกความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์กราฟิก
ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์กราฟิกvorravan
 
การสร้างเนื้อเพลง Karaoke ด้วยโปรแกรม photo shop cs5
การสร้างเนื้อเพลง Karaoke ด้วยโปรแกรม photo shop cs5การสร้างเนื้อเพลง Karaoke ด้วยโปรแกรม photo shop cs5
การสร้างเนื้อเพลง Karaoke ด้วยโปรแกรม photo shop cs5Pipit Sitthisak
 

Viewers also liked (20)

เกมส์และเว็บไซต์ที่ชื่นชอบ วิชาปฏิสัมพันธ์ระหว่างมนุษย์
เกมส์และเว็บไซต์ที่ชื่นชอบ วิชาปฏิสัมพันธ์ระหว่างมนุษย์เกมส์และเว็บไซต์ที่ชื่นชอบ วิชาปฏิสัมพันธ์ระหว่างมนุษย์
เกมส์และเว็บไซต์ที่ชื่นชอบ วิชาปฏิสัมพันธ์ระหว่างมนุษย์
 
คู่มือการบันทึกคะแนน
คู่มือการบันทึกคะแนนคู่มือการบันทึกคะแนน
คู่มือการบันทึกคะแนน
 
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
 
Ch20
Ch20Ch20
Ch20
 
Peer visit with SECI Model
Peer visit with SECI ModelPeer visit with SECI Model
Peer visit with SECI Model
 
Mac os x power point ฉบับสมบูรณ์ pdf
Mac os x power point ฉบับสมบูรณ์ pdfMac os x power point ฉบับสมบูรณ์ pdf
Mac os x power point ฉบับสมบูรณ์ pdf
 
Ch5 database system
Ch5 database systemCh5 database system
Ch5 database system
 
ฐานข้อมูลนะสอน
ฐานข้อมูลนะสอนฐานข้อมูลนะสอน
ฐานข้อมูลนะสอน
 
Mac os x power point ฉบับสมบูรณ์
Mac os x power point ฉบับสมบูรณ์Mac os x power point ฉบับสมบูรณ์
Mac os x power point ฉบับสมบูรณ์
 
ระบบปฏิบัติการ
ระบบปฏิบัติการระบบปฏิบัติการ
ระบบปฏิบัติการ
 
รายงานประชุมศิษย์เก่าอัสสัมชัญลำปาง 19#19
รายงานประชุมศิษย์เก่าอัสสัมชัญลำปาง 19#19รายงานประชุมศิษย์เก่าอัสสัมชัญลำปาง 19#19
รายงานประชุมศิษย์เก่าอัสสัมชัญลำปาง 19#19
 
How to Upload iOS App (IPA file) to iTunes Connect
How to Upload iOS App (IPA file) to iTunes ConnectHow to Upload iOS App (IPA file) to iTunes Connect
How to Upload iOS App (IPA file) to iTunes Connect
 
Chapter 1 set mac os
Chapter 1 set mac osChapter 1 set mac os
Chapter 1 set mac os
 
User speedy72.pdf
User speedy72.pdfUser speedy72.pdf
User speedy72.pdf
 
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูลบทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
 
ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์กราฟิก
ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์กราฟิกความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์กราฟิก
ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์กราฟิก
 
การสร้างเนื้อเพลง Karaoke ด้วยโปรแกรม photo shop cs5
การสร้างเนื้อเพลง Karaoke ด้วยโปรแกรม photo shop cs5การสร้างเนื้อเพลง Karaoke ด้วยโปรแกรม photo shop cs5
การสร้างเนื้อเพลง Karaoke ด้วยโปรแกรม photo shop cs5
 
01999031 western music baroque.
01999031 western music baroque.01999031 western music baroque.
01999031 western music baroque.
 
Slide3
Slide3Slide3
Slide3
 
Web Programming
Web ProgrammingWeb Programming
Web Programming
 

Similar to Book sru

โครงงานคอม 5
โครงงานคอม 5โครงงานคอม 5
โครงงานคอม 5wipawanmmiiww
 
ใบงานที่8
ใบงานที่8ใบงานที่8
ใบงานที่8Mind Kyn
 
ใบงานที่8
ใบงานที่8ใบงานที่8
ใบงานที่8Fin Sawitree
 
ใบงานที่8
ใบงานที่8ใบงานที่8
ใบงานที่8Mind Kyn
 
ใบงานที่8
ใบงานที่8ใบงานที่8
ใบงานที่8Mind Kyn
 
แบบเสนอโครงร่างโครงงานคอมพิวเตอร์
แบบเสนอโครงร่างโครงงานคอมพิวเตอร์แบบเสนอโครงร่างโครงงานคอมพิวเตอร์
แบบเสนอโครงร่างโครงงานคอมพิวเตอร์Kittichai Pinlert
 
แบบเสนอโครงร่างโครงงานคอมพิวเตอร์
แบบเสนอโครงร่างโครงงานคอมพิวเตอร์แบบเสนอโครงร่างโครงงานคอมพิวเตอร์
แบบเสนอโครงร่างโครงงานคอมพิวเตอร์Kittichai Pinlert
 
แบบเสนอโครงร่างโครงงานคอมพิวเตอร์
แบบเสนอโครงร่างโครงงานคอมพิวเตอร์แบบเสนอโครงร่างโครงงานคอมพิวเตอร์
แบบเสนอโครงร่างโครงงานคอมพิวเตอร์ปรียาพร ศิริวัฒน์
 
ใบงานที่5555
ใบงานที่5555ใบงานที่5555
ใบงานที่5555M'Mod Ta Noy
 
ใบงานที่5
ใบงานที่5ใบงานที่5
ใบงานที่5nichaphat22
 
ใบงานที่5555
ใบงานที่5555ใบงานที่5555
ใบงานที่5555M'Mod Ta Noy
 
บทที่ 2 เอกสารและงานวิจัยที่เกี่ยวข้อง เนื้อหา
บทที่ 2 เอกสารและงานวิจัยที่เกี่ยวข้อง เนื้อหาบทที่ 2 เอกสารและงานวิจัยที่เกี่ยวข้อง เนื้อหา
บทที่ 2 เอกสารและงานวิจัยที่เกี่ยวข้อง เนื้อหาVisiene Lssbh
 
โครงงานพัฒนาเครื่องมือ 5
โครงงานพัฒนาเครื่องมือ 5โครงงานพัฒนาเครื่องมือ 5
โครงงานพัฒนาเครื่องมือ 5suparada
 
โครงงานพ ฒนาเคร _องม_อ 5
โครงงานพ ฒนาเคร _องม_อ 5โครงงานพ ฒนาเคร _องม_อ 5
โครงงานพ ฒนาเคร _องม_อ 5Yokyok' Nnp
 
โครงงานพัฒนาเครื่องมือ 5
โครงงานพัฒนาเครื่องมือ 5โครงงานพัฒนาเครื่องมือ 5
โครงงานพัฒนาเครื่องมือ 5suparada
 
ขอบข่ายและประเภทโครงงานคอมพิวเตอร์
ขอบข่ายและประเภทโครงงานคอมพิวเตอร์ขอบข่ายและประเภทโครงงานคอมพิวเตอร์
ขอบข่ายและประเภทโครงงานคอมพิวเตอร์miiztake
 
รายงานโครงงานคอมพิว
รายงานโครงงานคอมพิวรายงานโครงงานคอมพิว
รายงานโครงงานคอมพิวAi Promsopha
 
ใบงานที่ 4 สื่อการศึกษา
ใบงานที่ 4 สื่อการศึกษาใบงานที่ 4 สื่อการศึกษา
ใบงานที่ 4 สื่อการศึกษาPuifai Sineenart Phromnin
 

Similar to Book sru (20)

โครงงานคอม 5
โครงงานคอม 5โครงงานคอม 5
โครงงานคอม 5
 
ใบงานที่8
ใบงานที่8ใบงานที่8
ใบงานที่8
 
ใบงานที่8
ใบงานที่8ใบงานที่8
ใบงานที่8
 
ใบงานที่8
ใบงานที่8ใบงานที่8
ใบงานที่8
 
ใบงานที่8
ใบงานที่8ใบงานที่8
ใบงานที่8
 
แบบเสนอโครงร่างโครงงานคอมพิวเตอร์
แบบเสนอโครงร่างโครงงานคอมพิวเตอร์แบบเสนอโครงร่างโครงงานคอมพิวเตอร์
แบบเสนอโครงร่างโครงงานคอมพิวเตอร์
 
แบบเสนอโครงร่างโครงงานคอมพิวเตอร์
แบบเสนอโครงร่างโครงงานคอมพิวเตอร์แบบเสนอโครงร่างโครงงานคอมพิวเตอร์
แบบเสนอโครงร่างโครงงานคอมพิวเตอร์
 
แบบเสนอโครงร่างโครงงานคอมพิวเตอร์
แบบเสนอโครงร่างโครงงานคอมพิวเตอร์แบบเสนอโครงร่างโครงงานคอมพิวเตอร์
แบบเสนอโครงร่างโครงงานคอมพิวเตอร์
 
K8
K8K8
K8
 
ใบงานที่5555
ใบงานที่5555ใบงานที่5555
ใบงานที่5555
 
ใบงานที่5
ใบงานที่5ใบงานที่5
ใบงานที่5
 
ใบงานที่5555
ใบงานที่5555ใบงานที่5555
ใบงานที่5555
 
บทที่ 2 เอกสารและงานวิจัยที่เกี่ยวข้อง เนื้อหา
บทที่ 2 เอกสารและงานวิจัยที่เกี่ยวข้อง เนื้อหาบทที่ 2 เอกสารและงานวิจัยที่เกี่ยวข้อง เนื้อหา
บทที่ 2 เอกสารและงานวิจัยที่เกี่ยวข้อง เนื้อหา
 
โครงงานพัฒนาเครื่องมือ 5
โครงงานพัฒนาเครื่องมือ 5โครงงานพัฒนาเครื่องมือ 5
โครงงานพัฒนาเครื่องมือ 5
 
โครงงานพ ฒนาเคร _องม_อ 5
โครงงานพ ฒนาเคร _องม_อ 5โครงงานพ ฒนาเคร _องม_อ 5
โครงงานพ ฒนาเคร _องม_อ 5
 
โครงงานพัฒนาเครื่องมือ 5
โครงงานพัฒนาเครื่องมือ 5โครงงานพัฒนาเครื่องมือ 5
โครงงานพัฒนาเครื่องมือ 5
 
ขอบข่ายและประเภทโครงงานคอมพิวเตอร์
ขอบข่ายและประเภทโครงงานคอมพิวเตอร์ขอบข่ายและประเภทโครงงานคอมพิวเตอร์
ขอบข่ายและประเภทโครงงานคอมพิวเตอร์
 
รายงานโครงงานคอมพิว
รายงานโครงงานคอมพิวรายงานโครงงานคอมพิว
รายงานโครงงานคอมพิว
 
ใบงานที่ 4 สื่อการศึกษา
ใบงานที่ 4 สื่อการศึกษาใบงานที่ 4 สื่อการศึกษา
ใบงานที่ 4 สื่อการศึกษา
 
Introduction to PHP programming
Introduction to PHP programmingIntroduction to PHP programming
Introduction to PHP programming
 

More from phochai

โครงการค่ายคุณธรรม
โครงการค่ายคุณธรรมโครงการค่ายคุณธรรม
โครงการค่ายคุณธรรมphochai
 
ค่ายคุณธรรม
ค่ายคุณธรรมค่ายคุณธรรม
ค่ายคุณธรรมphochai
 
Phptraining
PhptrainingPhptraining
Phptrainingphochai
 
Phptraining
PhptrainingPhptraining
Phptrainingphochai
 
Php dreamwaver
Php dreamwaverPhp dreamwaver
Php dreamwaverphochai
 
Dream mx
Dream mxDream mx
Dream mxphochai
 

More from phochai (8)

โครงการค่ายคุณธรรม
โครงการค่ายคุณธรรมโครงการค่ายคุณธรรม
โครงการค่ายคุณธรรม
 
ค่ายคุณธรรม
ค่ายคุณธรรมค่ายคุณธรรม
ค่ายคุณธรรม
 
Phptraining
PhptrainingPhptraining
Phptraining
 
Phptraining
PhptrainingPhptraining
Phptraining
 
Php dreamwaver
Php dreamwaverPhp dreamwaver
Php dreamwaver
 
Dream mx
Dream mxDream mx
Dream mx
 
Doc2
Doc2Doc2
Doc2
 
Doc1
Doc1Doc1
Doc1
 

Book sru

  • 1.
  • 2.
  • 3. (1) คำนำ ในปัจจุบันเทคโนโลยีสารสนเทศมีบทบาทในชีวิตประจาวันของเรามากขึ้นการที่จะสร้างระบบงานที่ใช้ ในองค์กรในลักษณะของการเขียนโปรแกรมบนเว็บ (Web Programming) เพื่อจัดเก็บข้อมูล และสืบค้นข้อมูล ในระบบฐานข้อมูล การที่จะพัฒนาได้นั้น จาเป็นต้องมีผู้ชานาญในการพัฒนาระบบจึงจะทาให้ระบบนั้นมี ประสิทธิภาพในการใช้งาน ดังนั้นเป้าหมายสาคัญของเอกสารตารา/หนังสือ เล่มนี้จึงต้องการเสริมสร้างทักษะ ความรู้ให้กับนักศึกษาหรือผู้ที่สนใจ การเขียนโปรแกรมบนเว็บตั้งแต่เริ่มต้น จนถึงประยุกต์ใช้ในระดับมืออาชีพ ต่อไป การเขียนโปรแกรมบนเว็บนั้น มีภาษาที่ใช้สาหรับการพัฒนามีอยู่ด้วยกันหลายภาษา เช่น ASP, Perl, JSP และ PHP เป็นต้น แต่ภาษาที่ได้รับความนิยมอย่างแพร่หลาย โดยสังเกตได้จากเว็บไซต์ส่วนใหญ่ เช่น facebook.com และเว็บไซต์หน่วยงานภาครัฐและเอกชน ภาษา PHP นั้น เป็นภาษาสคริปต์ที่ทางานในฝั่ง ของเครื่องแม่ข่าย (Server Side) เพื่อประมวลผลแล้วส่งกลับมายังเครื่องที่ร้องขอในลักษณะของภาษา HTML ลักษณะสาคัญของภาษา PHP จะมีโครงสร้างที่ง่ายแก่การทาความเข้าใจ คล้ายกับภาษาซี (C Language) ซึ่ง เหมาะกับ ผู้ เริ่ มต้ น พัฒ นา และยั งสามารถเขี ย นในลั กษณะของออบเจ็ค (OOP: Object Oriented Programming) ได้อีกด้วย เหมาะสาหรับการย่อโค๊ดภาษาให้สั้นลง ฐานข้อมูลก็เป็นส่วนหนึ่งที่มีความสาคัญ สาหรับการเขียนโปรแกรมบนเว็บด้วยภาษา PHP นั้น ตัวภาษา PHP เองสามารถติดต่อกับฐานข้อมูลหลาย ชนิด เช่น Oracle, Progress, MS-Access และ MySQL เป็นต้น ใน หนังสือเล่มนี้จะใช้ฐานข้อมูล MySQL สาหรับเรียนรู้และฝึกปฏิบัติ หนั ง สื อ เล่ ม นี้ เ ขี ย นขึ้ น เพื่ อ ถ่ า ยทอดความรู้ แ ละประสบการณ์ ข องผู้ เ ขี ย น (จากประสบการณ์ สู่ ภาคปฏิบัติ) ประสบการณ์ของผู้เขียนนั้นได้มาจากงานสอน และพัฒนาเว็บ ด้วยภาษา PHP และ MySQL มา โดยตลอด เป็นเวลานานไม่น้อยกว่า 10 ปี กลั่นจากใจสู่ผู้ที่สนใจ รวมถึง นิสิต นักศึกษา ที่มีความสนใจด้าน การเขียนโปรแกรมหรือพัฒนาเว็บ นาไปศึกษาเรียนรู้ นาไปประยุกต์ใช้งานที่หลากหลายตามลักษณะงานที่ แตกต่าง ดังนั้นผู้เขียนจึงหวังว่า หลังการศึกษาเนื้อหาจากหนังสือเล่มนี้ทั้งหมดแล้ว ผู้อ่านจะสามารถนาความรู้ ไปใช้การโปรแกรมบนเว็บเพื่อใช้งานจริงต่อไป ปริญญา น้อยดอนไพร parinya-2008@hotmail.com
  • 4. (2)
  • 5. (3) สำรบัญ หน้ำที่ คำนำ .................................................................................................................................................... (1) สำรบัญ ................................................................................................................................................. (3) สำรบัญตำรำง ....................................................................................................................................... (9) สำรบัญภำพ ........................................................................................................................................(11) บทที่ 1 บทนำ .................................................................................................................................. 1 PHP คือ อะไร ............................................................................................................................. 1 PHP สามารถทาอะไรได้บ้าง ....................................................................................................... 1 ประวัติความเป็นมาของ PHP (History of PHP) ....................................................................... 2 PHP เวอร์ชัน 4 ........................................................................................................................... 3 PHP เวอร์ชัน 5 ........................................................................................................................... 4 PHP เวอร์ชัน 6 ........................................................................................................................... 5 MySQL คืออะไร ......................................................................................................................... 6 บทที่ 2 หลักกำรทำงำนของ PHP .................................................................................................. 11 AppServ คืออะไร .....................................................................................................................13 วิธีการติดตั้งโปรแกรม AppServ ...............................................................................................15 XAMPP คืออะไร ....................................................................................................................... 21 วิธีการติดตั้ง XAMPP บนระบบปฏิบัติ Windows ....................................................................22 การเลือกใช้เครื่องมือสาหรับการเขียนโค้ด (Choosing a Code Editor) ................................. 27 บทที่ 3 PHP เบื้องต้น .................................................................................................................... 31 การแทรกคาสั่งภาษา PHP ในเอกสาร HTML .......................................................................... 31 องค์ประกอบพื้นฐานของการเขียน PHP ................................................................................... 32 การแสดงผลข้อมูลผ่านเว็บบราวเซอร์ (Outputting Data to the Browser) ......................... 33 ชนิดข้อมูลที่รองรับใน PHP (PHP's Supported Datatypes) ................................................ 37 การแปลงชนิดข้อมูลโดยใช้ตัวแปร .......................................................................................... 40 การปรับเปลี่ยนชนิดข้อมูลแบบอัตโนมัติ (Adapting Datatypes with Type Juggling) ....... 41 ฟังก์ชันที่เกี่ยวข้องกับชนิดข้อมูล (Type-Related Function) ................................................ 41 ฟังก์ชันตรวจสอบชนิดของข้อมูล (Type Identifier Functions) ............................................ 43 คาสงวนของ PHP (Reserved Words) .................................................................................... 43 บทที่ 4 ตัวแปร ตัวดำเนินกำรและนิพจน์ (Variables, Operators and Expressions) .............. 45
  • 6. (4) สำรบัญ (ต่อ) หน้ำที่ ตัวแปร (Variable) .................................................................................................................... 45 ขอบเขตของตัวแปร (Variable Scope) .................................................................................. 47 ตัวแปรพิเศษ (Super global Variables) ................................................................................ 41 ตัวแปรค่าคงที่ (Constants) ..................................................................................................... 53 ตัวแปรที่มีค่า Null .................................................................................................................... 54 การตรวจสอบและยกเลิกตัวแปร ............................................................................................... 55 ตัวดาเนินการ (Operators) และนิพจน์ (Expressions) ........................................................... 56 ตัวดาเนินการในการเชื่อมข้อความ (String) .............................................................................. 62 ตัวดาเนินการอื่น ๆ ....................................................................................................................66 บทที่ 5 โครงสร้ำงควบคุม (Control Structures) ....................................................................... 67 คาสั่งเงื่อนไข (Conditional Statements) .............................................................................. 67 คาสั่งทาซ้า (Looping Statements) ........................................................................................72 คาสั่งควบคุมอื่นๆ ที่เกี่ยวข้องกับคาสั่งทาซ้า (The Other Controls of Looping Statements) ........................................................................................................................... 78 บทที่ 6 ฟังก์ชัน (Functions) ....................................................................................................... 81 ฟังก์ชัน ...................................................................................................................................... 81 การเรียกใช้งานฟังก์ชันมาตรฐานของ PHP ............................................................................... 82 การสร้างฟังก์ชัน (Creating a Function) ................................................................................ 82 การเรียกใช้ฟังก์ชันที่สร้างเอง .................................................................................................... 83 ฟังก์ชันแบบมีการส่งค่าพารามิเตอร์ .......................................................................................... 83 การส่งค่ากลับจากฟังก์ชันด้วยคาสั่ง return (Returning Values from a Function) ............86 ฟังก์ชันแบบเรียกตัวเอง (Recursive Functions) .................................................................... 87 ฟังก์ชันไลบรารี (Function Libraries) ..................................................................................... 88 บทที่ 7 อำร์เรย์ (Arrays) .............................................................................................................. 91 การสร้างอาร์เรย์ (Create arrays) ............................................................................................ 91 การเข้าถึงข้อมูลภายในอาร์เรย์ ................................................................................................. 95 ฟังก์ชันอื่นๆ ที่เกี่ยวกับอาร์เรย์ ................................................................................................. 98 ฟังก์ชันในการเพิ่มสมาชิกในอาร์เรย์ ......................................................................................... 98 ฟังก์ชันในการลบสมาชิกในอาร์เรย์ ......................................................................................... 101
  • 7. (5) สำรบัญ (ต่อ) หน้ำที่ ฟังก์ชันในการนับจานวนสมาชิกในอาร์เรย์ ............................................................................. 102 ฟังก์ชันในการเรียงลาดับข้อมูลในอาร์เรย์ที่มีอินเด็กซ์เป็นตัวเลข ............................................ 104 ฟังก์ชันที่ใช้ในการเรียงลาดับข้อมูลในอาร์เรย์ที่มีอินเด็กซ์เป็นตัวอักษรหรือข้อความ ............. 105 ฟังก์ชันที่ใช้สาหรับการจัดการพอยเตอร์ (Pointer) ในอาร์เรย์ ............................................... 108 ฟังก์ชันสาหรับการรวมอาร์เรย์ ................................................................................................108 ฟังก์ชันสาหรับการสลับค่าระหว่างอินเด็กซ์หรือคีย์กับค่าข้อมูลในอาร์เรย์ ..............................110 ฟังก์ชันสาหรับการค้นหาอินเด็กซ์หรือคีย์และค่าข้อมูลในอาร์เรย์ .......................................... 110 ฟังก์ชันสาหรับการหาค่าข้อมูลสมาชิกที่เหมือนและแตกต่างกันในอาร์เรย์ ............................ 111 การใช้ข้อมูลจากอาร์เรย์ $_SERVER ...................................................................................... 112 การใช้ข้อมูลจากอาร์เรย์ $_FILE ............................................................................................ 114 บทที่ 8 สตริง ตัวเลข และเวลำ ................................................................................................... 117 ฟังก์ชันเกี่ยวกับสตริง .............................................................................................................. 117 ฟังก์ชันเกี่ยวกับรหัสแอสกี (ASCII) ......................................................................................... 117 ฟังก์ชันเกี่ยวกับการหาขนาดของสตริง ................................................................................... 118 ฟังก์ชันในการเปลี่ยนรูปแบบของตัวพิมพ์ ............................................................................... 119 ฟังก์ชันเกี่ยวกับการแยก และรวมข้อความหรือสตริง ............................................................. 121 ฟังก์ชันเกี่ยวกับข้อความหรือสตริงย่อย .................................................................................. 122 ฟังก์ชันในการค้นหาข้อความหรือสตริง .................................................................................. 124 ฟังก์ชันในการแทนที่ข้อความหรือสตริง ................................................................................. 125 ฟังก์ชันในการตัดช่องว่างและเติมข้อความหรือสตริง .............................................................. 127 ฟังก์ชันเกี่ยวกับอักขระพิเศษของ HTML ................................................................................ 129 ฟังก์ชันเกี่ยวกับจานวนและตัวเลข .......................................................................................... 130 ฟังก์ชันเกี่ยวกับวันเวลา (Date and Time) ............................................................................132 การจัดการกับวันที่และเวลาแบบ Greenwich Mean Time (GMT) ..................................... 139 บทที่ 9 กำรจัดกำรไฟล์และไดเรกทอรี ......................................................................................... 145 การอ้างถึง Document Root .................................................................................................145 การอ้างอิงพาธแบบ Absolute ............................................................................................... 145 การอ้างอิงพาธแบบ Relative ................................................................................................. 146 การจัดการกับไฟล์ ................................................................................................................... 147
  • 8. (6) สำรบัญ (ต่อ) บทที่ 10 บทที่ 11 บทที่ 12 บทที่ 13 หน้ำที่ การจัดการกับไดเรกทอรี ......................................................................................................... 159 การอัพโหลดไฟล์ ..................................................................................................................... 164 ฟังก์ชันการหาขนาด และชนิดของไฟล์ .................................................................................. 167 กำรจัดกำรข้อมูลจำกฟอร์ม ............................................................................................. 169 ลักษณะของฟอร์ม ...................................................................................................................169 คานิยามและการใช้งานแท็ก form ..........................................................................................170 การจัดการข้อมูลจากฟอร์มในฝั่งเซิร์ฟเวอร์ .............................................................................179 การส่งข้อมูลแบบอาร์เรย์ .........................................................................................................183 คุกกี้ เซสชั่น และกำรเชื่อมโยงระหว่ำงเพจ ..................................................................... 185 เฮดเดอร์ (Header) ................................................................................................................. 185 การส่งข้อมูลระหว่างเพจแบบ Query String ......................................................................... 186 การจัดเก็บข้อมูลแบบคุกกี้ ...................................................................................................... 187 การจัดเก็บข้อมูลแบบเซสชัน ...................................................................................................189 กำรเขียนโปรแกรมแบบ OOP .........................................................................................197 คลาส (Class) ..........................................................................................................................197 การนาคลาสมาใช้ในสคริปต์ PHP ........................................................................................... 198 ออบเจ็กต์ และอินสแตนซ์ ....................................................................................................... 198 เมธอด (Method) ................................................................................................................... 199 โมดิฟายเออร์ (Modifier) แบบ public และ private ............................................................ 201 ค่าคงที่ (Constant) .................................................................................................................204 คอนสตรักเตอร์ (Constructor) .............................................................................................. 205 โมดิฟายเออร์ Static ............................................................................................................... 206 การสืบทอด (Inheritance) ..................................................................................................... 208 กำรใช้เทคนิค AJAX ร่วมกับ PHP .................................................................................. 211 AJAX (Asynchronous JavaScript and XML) ....................................................................211 ประวัติความเป็นมา ................................................................................................................. 212 ที่มาของปัญหา ........................................................................................................................ 212 โครงสร้างของ AJAX ............................................................................................................... 213 การทางานของ AJAX ..............................................................................................................214
  • 9. (7) สำรบัญ (ต่อ) หน้ำที่ การใช้ AJAX Framework ..................................................................................................... 215 ฟังก์ชันที่ใช้จัดการข้อมูล ......................................................................................................... 218 แนวทางการพัฒนา AJAX Application ................................................................................219 ปัญหาภาษาไทยใน AJAX ....................................................................................................... 220 การส่งผลลัพธ์กลับมาเป็น JavaScript ....................................................................................220 การอัปเดทอินพุต Select ด้วยเทคนิค AJAX ......................................................................... 224 อีเวนต์ (Event) ....................................................................................................................... 228 การกาหนดอีเวนต์ ................................................................................................................... 230 ออบเจ็กต์อีเวนต์ (Object Event) .......................................................................................... 231 อีเวนต์เกี่ยวกับเมาส์ ................................................................................................................ 232 อีเวนต์เกี่ยวกับคีย์บอร์ด .......................................................................................................... 233 บทที่ 14 ฐำนข้อมูล MySQL และกำรใช้งำน phpMyAdmin ...................................................... 241 คาสั่งพื้นฐานของ MySQL .......................................................................................................241 ลักษณะองค์ประกอบของฐานข้อมูล ....................................................................................... 243 ชนิดข้อมูลของคอลัมน์ ............................................................................................................ 244 แอททริบิวต์ของคอลัมน์ .......................................................................................................... 246 การสร้างฐานข้อมูล ................................................................................................................. 247 การสร้างตารางฐานข้อมูล ....................................................................................................... 247 การแทรก ปรับปรุง ลบ และเรียกดูข้อมูลในตาราง .................................................................251 จัดการฐานข้อมูลด้วย phpMyAdmin ....................................................................................256 การเริ่มต้นใช้งาน phpMyAdmin ...........................................................................................256 การลบฐานข้อมูล และตาราง .................................................................................................. 263 ส่วนของการใช้คาสั่ง SQL ....................................................................................................... 263 ส่วนของการค้นหา .................................................................................................................. 264 ส่วนของการกาหนดสิทธิ์ ......................................................................................................... 264 บทที่ 15 กำรใช้ PHP ร่วมกับ MySQL ..........................................................................................265 การใช้ PHP ร่วมกับ MySQL................................................................................................... 265 ฟังก์ชันสาหรับเชื่อมต่อ/ยกเลิกการเชื่อมต่อระหว่าง PHP และ MySQL ................................265 ฟังก์ชันสาหรับการเลือกฐานข้อมูล ..........................................................................................267
  • 10. (8) สำรบัญ (ต่อ) หน้ำที่ การส่งคาสั่ง SQL ไปยังฐานข้อมูล ...........................................................................................268 การอ่านข้อมูลผลลัพธ์ ............................................................................................................. 269 การแก้ไขข้อมูลภาษาไทยกลายเป็น "?????...." ........................................................................272 การตรวจสอบการเปลี่ยนแปลงข้อมูล ......................................................................................272 การตรวจสอบข้อผิดพลาดระหว่างการทางานร่วมกับ MySQL .............................................. 275 การตรวจสอบชื่อฐานข้อมูลและตาราง ................................................................................... 275 การตรวจสอบโครงสร้างของขอบเขตข้อมูล ............................................................................ 277 บทที่ 16 กรณีศึกษำ: ระบบจัดกำรสมำชิก ..................................................................................... 281 โปรเซสการทางานของระบบจัดการสมาชิก ............................................................................ 281 อธิบายการทางานของระบบ ................................................................................................... 281 สร้างฐานข้อมูลและตาราง ...................................................................................................... 282 รายละเอียดของไฟล์ที่เกี่ยวข้อง .............................................................................................. 282 บรรณำนุกรม ...................................................................................................................................... 305
  • 11. (9) สำรบัญตำรำง ตำรำงที่ 3.1 3.2 3.3 4.1 4.2 4.3 4.4 4.5 4.6 4.7 7.1 7.2 7.3 7.4 7.5 8.1 8.2 8.3 8.4 8.5 8.6 8.7 9.1 9.2 9.3 9.4 9.5 10.1 10.2 หน้ำที่ แสดงตัวกาหนดชนิดการแสดงผลที่ใช้ร่วมกับคาสั่ง printf ( ) ...................................................35 ตัวดาเนินการแปลงชนิดของข้อมูล (Type Casting Operators) ............................................. 40 คาสงวนของ PHP ......................................................................................................................44 ตัวดาเนินการพื้นฐานสาหรับการคานวณ .................................................................................. 57 ตัวดาเนินการสาหรับการกาหนดค่า .......................................................................................... 58 ตัวดาเนินการสาหรับเพิ่ม และลดค่า ......................................................................................... 59 ตัวดาเนินการสาหรับการเปรียบเทียบ ....................................................................................... 60 ตัวดาเนินการสาหรับการเปรียบเทียบทางตรรกะ ......................................................................60 ลาดับความสาคัญของตัวดาเนินการ .......................................................................................... 62 Escape Sequence ..................................................................................................................63 แสดงตัวอย่างข้อมูลแบบอาร์เรย์ และแสดงตาแหน่งของอินเด็กซ์ ............................................ 91 แสดงผลสรุปฟังก์ชันที่ใช้สาหรับเรียงลาดับข้อมูลในอาร์เรย์ที่มีอินเด็กซ์เป็นตัวอักษร ............ 107 สรุปฟังก์ชันที่ใช้สาหรับการจัดการพอยเตอร์ในอาร์เรย์ .......................................................... 108 แสดงค่าอินเด็กซ์หรือคีย์ของอาร์เรย์ $_SERVER .................................................................... 113 แสดงค่าอินเด็กซ์หรือคีย์ของอาร์เรย์ $_FILE .......................................................................... 114 ฟังก์ชันเกี่ยวกับรหัสแอสกี .......................................................................................................117 ฟังก์ชันในการตัดช่องว่าง .........................................................................................................128 ฟังก์ชันเกี่ยวกับการประมาณค่า ..............................................................................................130 ฟังก์ชันในการเปรียบเทียบจานวน .......................................................................................... 131 ฟังก์ชันการตรวจสอบ และจัดรูปแบบตัวเลข .......................................................................... 131 ฟังก์ชันเพิ่มเติมอื่นๆ ................................................................................................................ 132 อาร์เรย์แบบ Key/Value ที่ได้จากการใช้ฟังก์ชัน getdate ( ) ............................................... 137 ขั้นตอนการเขียนและอ่านข้อมูลในไฟล์ ...................................................................................147 ไฟล์โหมด ................................................................................................................................ 147 ฟังก์ชันที่ใช้ตรวจสอบเกี่ยวกับไฟล์ .......................................................................................... 158 ฟังก์ชันที่ใช้ตรวจสอบเวลาที่เกี่ยวข้องกับไฟล์ ......................................................................... 158 ค่าคีย์ของตัวแปร $_FILES ......................................................................................................165 ตัวรับข้อมูลที่สาคัญของฟอร์ม .................................................................................................169 แสดงแอตทริบิวต์เฉพาะแท็ก form ........................................................................................ 170
  • 12. (10) สำรบัญตำรำง (ต่อ) ตำรำงที่ 10.3 10.4 10.5 10.6 10.7 10.8 10.9 10.10 13.1 13.2 13.3 14.1 14.2 14.3 14.4 14.5 14.6 14.7 14.8 16.1 16.2 หน้ำที่ แสดงแอตทริบิวต์เฉพาะแท็ก input ....................................................................................... 172 แสดงแอตทริบิวต์เฉพาะแท็ก textarea .................................................................................. 174 แสดงแอตทริบิวต์เฉพาะแท็ก label ........................................................................................175 แสดงแอตทริบิวต์เฉพาะแท็ก legend .................................................................................... 175 แสดงแอตทริบิวต์เฉพาะแท็ก select ...................................................................................... 176 แสดงแอตทริบิวต์เฉพาะแท็ก OPTGROUP ............................................................................ 177 แสดงแอตทริบิวต์เฉพาะแท็ก OPTION ...................................................................................178 แสดงแอตทริบิวต์เฉพาะแท็ก button .................................................................................... 178 แสดงอีเวนต์ของ JavaScript สาหรับกาหนดให้กับอิลิเมนต์ .................................................. 229 แสดงอีเวนต์ของ JavaScript แบบพร็อปเพอร์ตี้ .................................................................... 231 แสดงตัวอย่างรหัสที่ใช้แทนปุ่มคีย์บอร์ด ..................................................................................234 แสดงชนิดข้อมูลของ MySQL ชนิดตัวเลข .............................................................................. 244 แสดงชนิดข้อมูลของ MySQL ชนิดสตริง ................................................................................ 245 แสดงชนิดข้อมูลของ MySQL ชนิด BLOB ............................................................................. 245 แสดงชนิดข้อมูลของ MySQL ชนิด SET และ ENUM ............................................................ 245 แสดงชนิดข้อมูลของ MySQL ชนิดวันเวลา ............................................................................ 246 แสดงแอททริบิวต์ของคอลัมน์ใน MySQL ............................................................................... 246 แสดงโอเปอร์เรเตอร์ที่ใช้งานร่วมกับคาสั่ง WHERE ................................................................ 254 แสดงฟังก์ชัน Aggregate สาหรับใช้ร่วมกับ GROUP BY ....................................................... 255 ตารางข้อมูล tblcatmember ................................................................................................ 282 ตารางข้อมูล tblmember ...................................................................................................... 282
  • 13. (11) สำรบัญภำพ ภำพที่ 1.1 1.2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 2.13 2.14 2.15 2.16 2.17 2.18 2.19 2.20 2.21 2.22 2.23 2.24 2.25 2.26 หน้ำที่ ผู้ร่วมพัฒนา PHP ........................................................................................................................ 2 ผู้ร่วมพัฒนา MySQL ...................................................................................................................6 รูปแบบการติดต่อสื่อสารระหว่างเว็บบราวเซอร์และเว็บเซิร์ฟเวอร์ผ่านโปรโตคอล HTTP ........12 รูปแบบการติดต่อสื่อสารระหว่างเว็บบราวเซอร์และเว็บเซิร์ฟเวอร์เพื่อเรียกเว็บเพจธรรมดา ... 12 การร้องขอการใช้งานจากไคลเอ็นท์ ไปยังเครื่องที่ให้บริการเป็น Web Server engine ของ PHP ................................................................................................................................... 13 ภาณุพงศ์ ปัญญาดี ผู้พัฒนา AppServ ......................................................................................13 ขั้นตอนการติดตั้งโปรแกรม AppServ .......................................................................................16 แสดงรายละเอียดเงื่อนไขการ GNU License ........................................................................... 16 เลือกปลายทางการติดตั้งโปรแกรม AppServ ........................................................................... 17 เลือก Package Components ที่ต้องการติดตั้ง .......................................................................17 แสดงการกาหนดค่าคอนฟิกค่า Apache เว็บเซิร์ฟเวอร์ ........................................................... 18 แสดงการกาหนดค่าคอนฟิกของ MySQL Database ............................................................... 19 แสดงการดาเนินการติดตั้งโปรแกรม AppServ ......................................................................... 19 แสดงหน้าจอขั้นตอนสิ้นสุดการติดตั้งโปรแกรม AppServ ........................................................ 20 แสดงการสตาร์ทโปรแกรม Apache และ MySQL ...................................................................20 แสดงผลการทางานของ AppServ บนหน้าเว็บบราวเซอร์ ........................................................20 แสดงโฟลเดอร์องค์ประกอบต่างๆ ที่สาคัญของ AppServ ........................................................ 21 kai 'oswald' seidler ผู้พัฒนา XAMPP ................................................................................... 22 ขั้นตอนการติดตั้ง XAMPP ........................................................................................................ 22 ขั้นตอนการติดตั้ง XAMPP ในส่วนของการสร้าง Shortcut ใน Start menu และ Desktop...23 ขั้นตอนการติดตั้ง XAMPP ในส่วนของการทวนถามความถูกต้องของตาแหน่งติดตั้ง ............... 23 ขั้นตอนการติดตั้ง XAMPP ในส่วนของการติดตั้ง portable แบบ without drive letters..... 24 ขั้นตอนการติดตั้ง XAMPP แสดงผลการดาเนินการติดตั้ง XAMPP แบบพกพา ....................... 24 ขั้นตอนการติดตั้ง XAMPP ในส่วนของการปรับโซนเวลาในไฟล์ php.ini และ my.ini ............ 25 ขั้นตอนการติดตั้ง XAMPP ในส่วนของการปรับเปลี่ยนการใช้งานเพิ่มเติม ............................... 25 แสดงขั้นตอนการเปิด XAMPP Control Panel ....................................................................... 25 แสดงหน้าจอ XAMPP Control Panel เพื่อควบคุมโปรแกรมต่างๆ ที่เกี่ยวข้อง ......................26 แสดงผลการทางานของ XAMPP บนหน้าเว็บบราวเซอร์ .......................................................... 26
  • 14. (12) สำรบัญภำพ (ต่อ) ภำพที่ 2.27 2.28 4.1 5.1 5.2 5.3 5.4 5.5 5.6 7.1 8.1 9.1 10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8 10.9 10.10 11.1 13.1 13.2 13.3 14.1 14.2 14.3 หน้ำที่ แสดงการสร้างโฟลเดอร์เก็บเอกสารเว็บเพจของ XAMPP ........................................................ 26 แสดงการบันทึกไฟล์ลงในโฟลเดอร์เก็บเอกสารเว็บเพจของ XAMPP เพื่อทดสอบและใช้งาน... 27 แสดงตัวอย่างตัวดาเนินการและนิพจน์ ......................................................................................58 แสดงแผนภาพการไหล (Flow Chart) ของคาสั่ง if .................................................................. 68 แสดงแผนภาพการไหลของคาสั่ง if ... else .............................................................................. 69 แสดงแผนภาพการไหลของคาสั่ง if ... elseif ............................................................................ 70 แสดงแผนภาพการไหลของคาสั่ง while ................................................................................... 72 แสดงแผนภาพการไหลของคาสั่ง do ... while ......................................................................... 73 แสดงแผนภาพการไหลของคาสั่ง for ........................................................................................ 74 แสดงหน้าเว็บเพจสาหรับเริ่มต้น Upload ไฟล์ ...................................................................... 115 แสดงตัวอย่างผลลัพธ์การสร้างปฏิทินออนไลน์ ....................................................................... 143 แสดงการเปิดไฟล์รูปภาพ ........................................................................................................ 156 แสดงตัวอย่างตัวรับข้อมูลของฟอร์ม ....................................................................................... 170 แสดงตัวอย่างผลลัพธ์ของฟอร์มโดยใช้แท็ก input ชนิด "Text" ............................................. 172 แสดงตัวอย่างผลลัพธ์ของการใช้แท็ก textarea ......................................................................173 แสดงตัวอย่างผลลัพธ์ของการใช้แท็ก label ............................................................................174 แสดงตัวอย่างผลลัพธ์ของการใช้แท็ก fieldset ในการจัดกลุ่มของแท็ก input .......................175 แสดงตัวอย่างผลลัพธ์ของการใช้แท็ก OPTION ภายในแท็ก select ...................................... 176 แสดงตัวอย่างผลลัพธ์ของการใช้แท็ก OPTGROUP ................................................................ 177 แสดงตัวอย่างผลลัพธ์ของการใช้แท็ก OPTION ภายในแท็ก select ...................................... 177 แสดงตัวอย่างผลลัพธ์ของการใช้แท็ก button ........................................................................ 178 แสดงการจัดการข้อมูลจากฟอร์มทางด้านเซิร์ฟเวอร์ ...............................................................179 สร้างฟอร์มสาหรับการ Login กรณีศึกษาและประยุกต์ใช้งานเซสชั่น .....................................194 เปรียบเทียบการทางานแบบเดิม กับ AJAX ............................................................................ 213 โครงสร้างของ AJAX ในปัจจุบัน ............................................................................................. 213 หลักการทางานของ AJAX ...................................................................................................... 214 หน้าล็อกอินเพื่อเข้าสู่ระบบของ phpMyAdmin เวอร์ชัน 3.5.4 ............................................ 257 หน้าเพจหลังจากล็อกอินเข้าสู่ระบบ phpMyAdmin เวอร์ชัน 3.5.4 ..................................... 257 แสดงขั้นตอนการสร้างฐานข้อมูลใหม่ ..................................................................................... 258
  • 15. (13) สำรบัญภำพ (ต่อ) ภำพที่ 14.4 14.5 14.6 14.7 14.8 14.9 14.10 14.11 14.12 14.13 14.14 14.15 14.15 หน้ำที่ แสดงขั้นตอนการสร้างตารางใหม่ ........................................................................................... 258 แสดงขั้นตอนการสร้างขอบเขตข้อมูลในตาราง ....................................................................... 259 แสดงขั้นตอนการสร้างตารางและกาหนดขอบเขตข้อมูลในตาราง .......................................... 259 แสดงขั้นตอนการแทรกข้อมูลลงในตาราง ............................................................................... 260 แสดงตัวอย่างรายการสาหรับการแทรกข้อมูลลงในตาราง ...................................................... 260 แสดงขั้นตอนการอ่านข้อมูลในตาราง ......................................................................................261 แสดงขั้นตอนการเลือกข้อมูลเพื่อแก้ไขข้อมูล .......................................................................... 261 แสดงขั้นตอนการเลือกข้อมูลเพื่อลบข้อมูล ..............................................................................262 แสดงตัวอย่างการเลือกข้อมูลเพื่อแก้ไขโครงสร้างข้อมูล ..........................................................262 แสดงตัวอย่างการลบข้อมูลในตารางและลบตาราง ................................................................. 263 แสดงตัวอย่างการใช้คาสั่ง SQL ผ่าน "Run SQL Query" ...................................................... 263 แสดงตัวอย่างการใช้คาสั่ง SQL ผ่าน "Run SQL Query" เพื่อค้นหาข้อมูล ........................... 264 แสดงตัวอย่างการใช้คาสั่ง SQL ผ่าน "Run SQL Query" เพื่อกาหนดสิทธิ์ ........................... 264
  • 16. บทที่ 1 บทนำ PHP คืออะไร PHP ย่อมาจาก ''PHP Hypertext Preprocessor'' เป็นภาษา Server-Side Script อีกภาษาหนึ่งเช่นเดียวกันกับ ASP ที่มีการทางานที่เครื่องคอมพิวเตอร์ฝั่ง Server ซึ่งรูปแบบในการเขียนคาสั่งการทางานนั้นจะมีลักษณะคล้ายกับภาษา Perl หรือภาษา C และสามารถใช้ร่วมงานกันกับ ภาษา HTML ได้อย่างมีประสิทธิภาพ หมำยเหตุ ในการสร้างเว็บจะใช้ Script อยู่ 2 รูปแบบคือ Server-Side Script เป็นลักษณะการทางานบนเครื่อง Server และแปลออกมาเป็นภาษา HTML เช่น PHP, ASP, CGI Client-Side Script เป็นลักษณะการทางานบนเครื่อง Client (เครื่องผู้ใช้) เช่น JavaScript, VBScript PHP สำมำรถทำอะไรได้บ้ำง ความสามารถของ PHP นั้นสามารถที่จะทางานในลักษณะ Dynamic Web ได้ทุกรูปแบบ เหมือนกับ CGI หรือ ASP ไม่ว่าจะเป็นการจัดการดูแลระบบฐานข้อมูล ระบบรักษาความปลอดภัย การรับ – ส่ง Cookies โดยที่ PHP นั้นสามารถที่จะติดต่อกับโปรแกรมจัดการฐานข้อมูลที่มีอยู่มากมาย ดังนี้ Adabas D InterBase Solid Microsoft Access DBase mSQL Sybase Empress MySQL Velocis FilePro Oracle Unix dbm Informix PostgreSQL MS SQL Server แต่ความสามารถที่พิเศษกว่านี้ก็คือ PHP สามารถที่จะติดต่อกับบริการต่างๆ ผ่านทางโพรโตคอล (Protocol) เช่น IMAP, SNMP, NNTP, POP3, HTTP และยังสามารถติดต่อกับ Socket ได้อีกด้วย
  • 17. 2 บทที่ 1 บทนา ประวัติควำมเป็นมำของ PHP (History of PHP) Rasmus Lerdorf Zeev Suraski Andi Gutmans ภำพที่ 1.1 ผู้ร่วมพัฒนา PHP ที่มา: http://lerdorf.com/pics/rl.jpg , http://tec20ten.files.wordpress.com/2010/02/dsc_0156-copy.jpg และ http://tech.ccidnet.com/col/attachment/2010/6/2037287.jpg (W. Jason Gilmore: 2) PHP ถูกคิดค้นขึ้นมาในปี 1995 โดยนักพัฒนาที่ชื่อว่า Rasmus Lerdorf แต่เดิมนั้นเขาได้พัฒนาเว็บเพจของเขาเองเพียงเพื่อแนะนาประวัติส่วนตัวออนไลน์ของเขาด้วย ภาษาสคริปต์ Perl/CGI แต่ภาษาสคริปต์ดังกล่าวค่อนข้างยุ่งยากและมีข้อจากัด เป็นเหตุเริ่ มต้นให้เขา พัฒนาภาษาสคริปต์ใหม่ ง่ายต่อการพัฒนา ในช่วงเริ่มต้นพัฒนานั้น ทาหน้าที่เพียง 2 ประการเท่านั้น คือ 1)เพื่อต้องการทราบถึงผู้เข้าชมเว็บของเขามากน้อยเพียงใด และ 2)เพื่อแสดงผลจานวนผู้เข้าชมเว็บเพจ เครื่องมือในครั้งนั้นเขาได้ตั้งชื่อว่า PHP-toolset (Personal Home Page toolset) PHP-toolset มีเสียงตอบรับจากผู้ใช้งานเป็นจานวนมาก และเขายังคงพัฒนาอย่างต่อเนื่องมี การปรับแต่งการแปลงและส่งข้อมูลตัวแปรผ่าน HTML form และเปลี่ยนภาษาที่ใช้ในการพัฒนา โดยใช้ ภาษาซี (C Language) แทนภาษา Perl และเผยแพร่ผลงานของเขาในเดือนพฤศจิกายน ค.ศ.1997 เป็น เวอร์ชัน PHP 2.0 หรือรู้จักกันในนาม Personal Home Page/Form Interpreter (PHP/FI) และได้เสียง ตอบรับที่ดีจากเหล่าโปรแกรมเมอร์ทั่วโลก PHP เวอร์ชันใหม่ ได้มีการเปลี่ยนแปลงและมีทีมพัฒนาทีมงาน คือ Zeev Suraski และ Adni Gutmans ทาการวิเคราะห์พื้นฐานของ PHP/FI แต่ยังคงแนวคิดเดิม คือ ทางานผสมผสานร่วมกับภาษา HTML และเพิ่มความสมบูรณ์ของภาษา PHP มากขึ้น เป็นเวอร์ชัน 3 และเผยแพร่ในเดือนมิถุนายน ค.ศ.1998 PHP ได้มีการพัฒนาอย่างต่อเนื่องมีหลายร้อยฟังก์ชั นที่เพิ่มเข้ามาและจานวนผู้ใช้ที่กาลังเติบโต ในปี 1999 บริษัท Netcraft (http://www.netcraft.com/) ได้ทาการวิจัยทางอินเทอร์เน็ตและวิเคราะห์ ข้อมูล จากรายงานพบว่า มีผู้ใช้งานภาษา PHP มากกว่า 1 ล้านเว็บไซต์ ทาให้ PHP ได้รับความนิยมมาก ที่สุด และทีมพัฒนา Zeev Suraski และ Andi Gutmans ได้มีความคิดริเริ่มต้องการให้ PHP ทาการ ปริญญา น้อยดอนไพร || การเขียนโปรแกรมบนเว็บด้วย PHP ร่วมกับฐานข้อมูล MySQL
  • 18. บทที่ 1 บทนา 3 ประมวลผลได้เร็วขึ้นในลักษณะ parser PHP เพื่อแยกประมวลผล ร่วมกับ Zend Engine ของบริษัท Zend Technology จากัด (http://www.zend.com/) เป็นเครื่องมือหลักในการขับเคลื่อนสาคัญ ผลได้ เป็น PHP เวอร์ชัน 4 PHP เวอร์ชัน 4 เมื่อวันที่ 22 พฤษภาคม ค.ศ.2000 ประมาณ 18 เดือน หลังจากที่เผยแพร่ใช้งาน PHP เวอร์ชัน 4 อย่างเป็นทางการ หลายคนถือว่าภาษา PHP เป็นภาษาที่มีเสถียรภาพสูงภาษาหนึ่งและได้รับความนิยม อย่างแพร่หลาย ราวๆ ช่วงปลายเดือน บริษัท Netcraft ได้ประมาณการว่า PHP จะมีผู้นาไปติดตั้งและใช้ งาน ประมาณ 3.6 ด้านโดเมน (Domain) สาหรับ PHP เวอร์ชัน 4 ได้เพิ่มและปรับปรุงคุณสมบัติ ดังต่อไปนี้ กำรจัดกำรทรัพยำกรที่ดีขึ้น (Improved resource handling) ปรับแก้หนึ่งในปัญหาหลักของเวอร์ชัน 3 ให้มีความยืดหยุ่น สามารถนาไปออกแบบและ ประยุกต์ใช้กับระบบงานขนาดใหญ่ ในเวอร์ชันก่อนหน้าไม่ได้มีเจตนาจะใช้ในองค์กรขนาดใหญ่ แต่เนื่อง ด้วยมีการใช้อย่างกว้างขวางและประโยชน์ ทาให้ผู้ พัฒ นาได้คิดและพัฒ นาภาษาให้ส ามารถใช้งานได้ หลากหลาย สนับสนุนกำรเขียนโปรแกรมเชิงวัตถุ (Object-oriented support) PHP เวอร์ชัน 4 สามารถพัฒนาระบบในลักษณะของการเขียนโปรแกรมเชิงวัตถุ ซึ่งมีฟังก์ชันที่ช่วย ในการทางาน แต่ยังไม่ครอบคลุมการทางานมากเท่าไหร่ อย่างไรก็ตามคุณสมบัติใหม่มีบทบาทสาคัญและ ดึงดูดให้ผู้ใช้งานหรือนักพัฒนาระบบ ที่ต้องการพัฒนาโปรแกรมเชิงวัตถุแบบดั้งเดิม หรือเรียกว่า ภาษา OOP นอกจากนั้นยังมีคุณสมบัติ เช่น ระบบแจ้งเตือน overloading และ run-time class ที่ช่วยป้องกันปัญหา เวลาพัฒนาระบบ สาหรับการเขียนโปรแกรมเชิงวัตถุที่สมบูรณ์แบบนั้น ควรใช้ PHP เวอร์ชัน 5 สนับสนุนกำรจัดกำรเซสชั่น (Native session-handling support) การจัดการเซสชั่น HTTP ใช้ได้กับทั้งในเวอร์ชัน 3.x โดยผู้ใช้สามารถเรียกใช้งานผ่านบน phplib (http://phplib.sourceforge.net) แต่สาหรับเวอร์ชัน 4 ผู้ใช้งานสามารถใช้งานได้เลย ซึ่งได้รวม ความสามารถไว้แล้ว คุณลักษณะนี้ได้มาจากการสารวจกิจกรรมและความพึงพอใจของผู้ใช้ส่วนใหญ่ กำรเข้ำรหัส (Encryption) นาไลบรารี่มาจาก MCrypt (http://mcrypt.sourceforge.net) มารวมไว้ใน PHP เวอร์ชัน 4 ก่อนการเผยแพร่ ผู้ใช้สามารถเลือกใช้รูปแบบการเข้ารหัสได้แบบ hash โดยมีอัลกอริทึมที่ได้รวมไว้ ได้แก่ Blowfish, MD5, SHA1 และ TripleDES ฯลฯ สนับสนุน ISAPI (ISAPI support) สนับสนุน ISAPI ให้ผู้ใช้สามารถใช้ PHP ร่วมกับเว็บเซิร์ฟเวอร์ของไมโครซอฟท์ คือ IIS และ Apache เว็บเซิร์ฟเวอร์ ปริญญา น้อยดอนไพร || การเขียนโปรแกรมบนเว็บด้วย PHP ร่วมกับฐานข้อมูล MySQL
  • 19. 4 บทที่ 1 บทนา สนับสนุน COM / DCOM (Native COM/DCOM support) เปิดโอกาสให้ผู้ใช้งานสามารถเรียกใช้และทางานร่วมกันกับโปรแกรมประยุกต์บนระบบปฏิบัติ Windows สนับสนุนกำรทำงำนร่วมกับภำษำ Java (Native Java support) PHP เวอร์ชัน 4 ได้เพิ่มประสิทธิภาพในการทางานร่วมกับภาษา Java รองรับไวยำกรณ์และนิพจน์ภำษำ Perl (Perl Compatible Regular Expressions (PCRE) library) ภาษา Perl เป็นภาษาที่มีความยาวและซับซ้อน มีรูปประโยคที่เป็นอิสระ แต่การทางานของภาษา Perl เป็นภาษาที่ยอมรับอย่างกว้างขวาง มีประสิทธิภาพการ และมีบทบาทสาคัญ ดังนั้น PHP เวอร์ชัน 4 ได้รวม ฟังก์ชันการทางานของภาษา Perl ไว้ด้วย เพื่อเป็นทางเลือกหนึ่งสาหรับการพัฒนาระบบ และทา ให้ใช้งานได้ง่ายขึ้น นอกจากคุณสมบัติต่างๆ เหล่านี้ ยังมีอีกหลายร้อยฟังก์ชันที่ถูกเพิ่มเข้ามาใน PHP เวอร์ชัน 4 รองรับความหลากหลาย ไลบรารี่ และโมดูลดีๆ มากมาย จากแหล่งต่างๆ เปิดใจรับสิ่งดีๆ ที่มีอยู่ มากมาย ในสากล นามาเพิ่มขีดความสามารถของตัวเอง หลายร้อยฟังก์ชันเหล่านี้จะกล่าวถึงรายละเอียดการใช้งาน ต่อไปในหนังสือเล่มนี้ ผู้แต่งหนังสือเล่มนี้หวังเป็นอย่างยิ่งว่า ผู้อ่านจะเปิดใจรับสิ่งดีๆ ที่มอบให้แล้วนาไป พัฒนาตนเองให้มีความรู้ความสามารถ เพิ่มประสิทธิภาพแก่ตนเอง เหมือนดังเช่น PHP PHP เวอร์ชัน 5 PHP เวอร์ชัน 5 ยังคงวิวัฒนาการไม่หยุดยั้งถึงแม้ว่ารุ่นก่อนหน้าจะมีความสามารถมากมาย มหาศาลโดยการเพิ่มฟังก์ชัน ไลบรารี่ และอื่นๆ อีกมากมาย มาถึง PHP เวอร์ชัน 5 ซึ่งมีการปรับปรุงอีก มากมายเช่นเดิม เพิ่มคุณสมบัติอีกหลายประการ ผู้แต่งเองยังใช้ความสามารถของเวอร์ชัน 4 ยังไม่หมด เวอร์ชัน 5 ก็ออกมาทาหัวใจหวั่นไหวใคร่รู้ PHP 5 มีการปรับปรุงความสามารถเพิ่มเติมขึ้นมาจาก PHP 4 มากมาย ในหัวข้อนี้จะกล่าวถึง ความสามารถที่สาคัญหลัก ๆ ที่เพิ่มเติมขึ้นมาใน PHP 5 ดังนี้ 1. ความสามารถทางด้าน OOP (Object-Oriented Programming) ความสามารถทางด้านการ เขียนโปรแกรมเชิงวัตถุหรือ OOP ได้มีมาตั้งแต่ PHP 3 แล้ว และได้ปรับปรุงต่อเนื่องมาจนถึง PHP 4 แต่ ความสามารถทางด้าน OOP ใน PHP 4 นั้นยังไม่สมบูรณ์นักและยังขาดฟีเจอร์ที่สาคัญในหลายด้าน เช่น การประกาศ Constructors และ Destructors การกาหนดขอบเขตของตัวแปรและเมธอดเป็น public, protected, private เป็นต้น โดยใน PHP 5 ได้ปรับปรุงความสามารถทางด้าน OOP ให้สมบูรณ์ขึ้น ทา ให้โปรแกรมเมอร์สามารถเขียน PHP โดยใช้หลักการของ OOP ได้อย่างสมบูรณ์แบบ 2. เพิ่ม MySQLi Extension MySQL นั้นเป็นระบบจัดการฐานข้อมูลที่ได้รับความนิยมในการ นามาพัฒนา Web Application ร่วมกับ PHP มานาน โดยใน MySQL เวอร์ชัน 4.1 และเวอร์ชัน 5 ได้ ปริญญา น้อยดอนไพร || การเขียนโปรแกรมบนเว็บด้วย PHP ร่วมกับฐานข้อมูล MySQL
  • 20. บทที่ 1 บทนา 5 เพิ่มเติมฟีเจอร์ที่สาคัญมากมาย เช่น Prepared statement การเชื่อมต่อฐานข้อมูลโดยใช้ SSL การใช้ Multi-query, Transaction เป็นต้น ดังนั้น PHP 5 จึงได้มีการเพิ่ม MySQL Extention ขึ้นมาใหม่โดยใช้ ชื่อว่า MySQLi จะช่วยให้สามารถนาความสามารถใหม่ ๆ ของ MySQL ออกมาใช้ได้อย่างเต็มที่ 3. ผนวก SQLite ไว้ใน PHP แม้ว่า MySQL จะเป็นระบบจัดการฐานข้อมูลที่ได้รับความนิยมและ นามาใช้ร่วมกับ PHP มากที่สุด แต่ใน PHP 5 นั้นได้ผนวกรวมเอา SQLite ซึ่งเป็นระบบจัดการฐานข้อมูล ขนาดเล็กเข้าไว้ด้วย โดยที่ผู้ใช้ไม่ต้องติดตั้งระบบจัดการฐานข้อมูลเพิ่มเติมก็สามารถเขียนโปรแกรม PHP เพื่อติดต่อกับฐานข้อมูลได้เลย ซึ่งช่วยอานวยความสะดวกในการเขียนโปรแกรมได้มากทีเดียว 4. สนับสนุน XML และ SOAP อย่างเต็มประสิทธิภาพ ใน PHP 5 มีการปรับปรุงความสามารถ ของ XML เพิ่มเติมโดยจะมีไลบรารี libxml2 ซึ่งเป็นไลบรารีมาตรฐานที่ PHP ใช้ติดต่อกับ XML นอกจากนี้ยังปรับปรุงและเพิ่มเติมในส่วนของ DOM(Document Object Model), XSLT (Extensible Stylesheet Language Transformations) และ SimpleXML โดยการออกแบบให้สามารถทางาน ร่วมกับ XML ได้ดียิ่งขึ้น นอกจากนี้ใน PHP 5 ยังสนับสนุน SOAP ซึ่งเป็นส่วนประกอบสาคัญในการ พัฒนาเว็บเซอร์วิส 5. การตรวจจับและจั ดการข้อผิดพลาด ใน PHP 5 มีการพัฒนาระบบตรวจจับและจัดการ ข้อผิดพลาดขึ้นมา เรียกว่า exception handling ซึ่งจะคล้ายกับที่มีในภาษา Java และ C++ ซึ่งจะช่วย อานวยความสะดวกและเพิ่มประสิทธิภาพในการตรวจสอบและจัดการข้อผิด พลาดที่อาจจะเกิดขึ้ นในการ รันโปรแกรมได้ 6. เพิ่ม Iterator Iterator ใน PHP 5 เป็นการใช้คาสั่ง foreach ในการวนลูปร่วมกับข้อมูลชนิด ต่าง ๆ ได้หลายชนิด ไม่ว่าจะเป็นอ็อบเจ็กต์ต่าง ๆ เอกสาร XML โครงสร้างไดเรกทอรี่หรือผลลัพธ์จากการ query ฐานข้อมูล เป็นต้น เป็นอย่างไรกันบ้างครับกับความสามารถใหม่ ๆ ของ PHP 5 คงทาให้ผู้อ่านเห็นภาพรวมที่ชัดเจน ขึ้นและหลายคนอาจจะอยากทดลองใช้กันบ้างแล้ว ซึ่ง นอกจากความสามารถหลัก ๆ ทั้ง 6 ข้อที่ได้อธิบาย ไว้ข้างต้น PHP 5 ยังมีความสามารถที่เพิ่มเติมขึ้นใหม่อีกมากมายที่ยังไม่ได้อธิบายไว้ ณ ที่นี้ เช่น การใช้ ส่วนขยายเพิ่มเติม Tidy เพื่อให้มั่นใจได้ว่าผลลัพธ์ที่แสดงออกมานั้นอยู่รูปแบบของ HTML หรือ XHTML ที่ถูกต้อง การจัดการหน่วยความจาที่ดีขึ้นรวมไปถึงการปรับปรุงและแก้ไขข้อผิดพลาดเดิมใน PHP 4 อีก หลายจุดให้ดียิ่งขึ้น PHP เวอร์ชัน 6 PHP เวอร์ชัน 6 ปัจจุบันกาลังอยู่ในขั้นพัฒนาและปรับปรุงขณะนี้ยังเป็น Beta Version ยังคงใช้ Zend engine เป็นแกนหลัก การเปลี่ยนแปลงที่สาคัญ คือ 1. ไม่มีคุณสมบัติ register_global, magic_quote_gpc และ safe_mode ปริญญา น้อยดอนไพร || การเขียนโปรแกรมบนเว็บด้วย PHP ร่วมกับฐานข้อมูล MySQL
  • 21. 6 บทที่ 1 บทนา 2. ยกเลิกตัวแปร HTTP_*_VARS ทั้งหมด เช่น HTTP_POST_VARS และ HTTP_COOKIE_VARS เป็นต้น 3. สนับสนุนการทางานกับสตริงแบบ Unicode 4. เพิ่มชนิดข้อมูลเลขจานวนเต็มขนาด 64 บิต MySQL คืออะไร MySQL เป็ น ระบบจั ด การฐานข้ อ มู ล เชิ ง สั ม พั น ธ์ (Relational Database Management System) โดยใช้ภาษา SQL แม้ว่า MySQL เป็นซอฟต์แวร์โอเพนซอร์ส แต่แตกต่างจาก ซอฟต์แวร์โอเพนซอร์สทั่วไป โดยมีการพัฒนาภายใต้บริษัท MySQL AB ในประเทศสวีเดน โดยจัดการ MySQL ทั้งในแบบที่ให้ใช้ฟรี และแบบที่ใช้ในเชิงธุรกิจ MySQL สร้างขึ้นโดยชาวสวีเดน 3 คน และชาวฟินแลนด์ ชื่อ David Axmark, Allan Larsson และ Michael "Monty" Widenius. David Axmark Allan Larsson Michael "Monty" Widenius ภำพที่ 1.2 ผู้ร่วมพัฒนา MySQL ที่มา: http://www.mccullagh.org/db9/10d-1/david-axmark-mysql.jpg http://www.wire2011.eu/upload/participant/290/Allan_Larsson.JPG และ http://www.abclinuxu.cz/images/screenshots/2/1/150712-ulf-michael-montywidenius-13235.jpg ปัจจุบันบริษัทซันไมโครซิสเต็มส์ (Sun Microsystems, Inc.) เข้าซื้อกิจการของ MySQL AB เรียบร้อยแล้ว ฉะนั้นผลิตภัณฑ์ภายใต้ MySQL AB ทั้งหมดจะตกเป็นของบริษัทซันไมโครซิสเต็มส์ ชื่อ "MySQL" อ่านออกเสียงว่า "มายเอสคิวเอล" (maɪˌɛskjuːˈɛl) หรือ "มายเอสคิวแอล" (ในการอ่านอักษร L ในภาษาไทย) ซึ่งทางซอฟต์แวร์ไม่ได้อ่าน มายซีเควล หรือ มายซีควล เหมือนกั บ ซอฟต์แวร์จัดการฐานข้อมูลตัวอื่น ปริญญา น้อยดอนไพร || การเขียนโปรแกรมบนเว็บด้วย PHP ร่วมกับฐานข้อมูล MySQL
  • 22. บทที่ 1 บทนา 7 รุ่นของผลิตภัณฑ์ รุ่นของผลิตภัณฑ์นั้นแบ่งออกมาได้ 3 สายการผลิ ต ได้แก่ เวอร์ชันใช้ฟรี เวอร์ชันการค้า และ เวอร์ชันที่สนับสนุนกับผลิตภัณฑ์ SAP (MAX DB) ความแตกต่าง คือ เวอร์ชัน community นั้นสามารถ นาไปใช้งานได้ฟรีแต่ขาดการสนับสนุนหรือการช่วยเหลือเมื่อมีปัญหาเกิดขึ้น เวอร์ชันที่เป็นคอมเมอร์เชียลนั้น ให้บริการด้านความสนับสนุนเมื่อมีปัญหา (ซื้อบริการ) สรุปคร่าวๆ ประเภทของ MySQL ให้เลือกใช้ดังนี้ MySQL Enterprise MySQL Cluster MySQL Embedded MySQL Community (opensource) ควำมสำมำรถที่เพิ่มขึ้น ในเวอร์ชัน 5.0 มีความสามารถหลายอย่างที่สาคัญสาหรับระบบฐานข้อมูลขนาดใหญ่หรือระดับ องค์กร (Enterprise Feature) เช่น Store Procedure, database trigger, database view, database schema ซึ่งได้มีการปรับเพิ่มประสิทธิภาพในส่วนของตารางและการทาดัชนี (index) ขึ้นมา อีก ปัจจุบันเวอร์ชัน community หรือเวอร์ชันที่เสถียร (stable) 5.0 และเวอร์ชันทดสอบคือ 5.1 beta release และ 5.2 Alpha ตั้งแต่เวอร์ชัน 5.1 เริ่มสนับสนุนการทา Partition Database ตารางเวลาสาหรับเหตุการณ์ต่างๆ (Event schedule) ประเภทกำรจัดเก็บข้อมูล (Database Storage Engine) ที่สนับสนุน MyISAM ค่าปกติ (default) InnoDB สนับสนุนการทา ทรานแซคชั่น (transaction) แบบ ACID Memory การจัดเก็บในหน่วยความจา ใช้เป็นตารางชั่วคราวเพื่อความรวดเร็ว เนื่องจากเก็บไว้ใน หน่วยความจา ทาให้มีความเร็วในการทางานสูงมาก Merge เป็นการรวม Table หลาย ๆ ตัวให้แสดงผล หรือแก้ไข เสมือนเป็นข้อมูลจาก Table เดียว Archive เหมาะสาหรับการจัดเก็บข้อมูลพวก log file,ข้อมูลที่ไม่ต้องมีการ คิวรี่ (query) หรือใช้ บ่อยๆ เช่น log file เพื่อประโยชน์ในการตรวจสอบย้อนหลัง (Security Audit Information) Federated สาหรับการจัดเก็บแบบปลายทาง (remote server) แทนที่จะเป็นการจัดเก็บแบบ local เหมือนการจัดเก็บ (Storage) แบบอื่นๆ NDB สาหรับการจัดเก็บแบบ คลัสเตอร์ (cluster) CSV เก็บข้อมูลจาก Text ไฟล์โดยอาศัยเครื่องหมาย คอมมา (comma) เป็นตัวแบ่งฟิลด์ ชนิดของข้อมูลที่สนับสนุน ข้อมูลชนิดตัวเลข ปริญญา น้อยดอนไพร || การเขียนโปรแกรมบนเว็บด้วย PHP ร่วมกับฐานข้อมูล MySQL
  • 23. 8 บทที่ 1 บทนา  BIT ใช้สาหรับเก็บข้อมูลชนิดเลขสองที่มีสัญลักษณ์เพียงสองตัว ประกอบด้วย 0 (ศูนย์) กับ 1 (หนึ่ง) บางครั้งอาจหมายถึงการที่มีโอกาสเลือกได้เพียง 2 ทาง เช่น ปิดกับเปิด ไม่ใช่กับใช่ เท็จกับจริง ซ้ายกับขวา เป็นต้น  TINYINT ใช้สาหรับจัดเก็บข้อมูลชนิดตัวเลขจานวนเต็ม ขนาด 8 บิต  SMALLINT ใช้สาหรับเก็บข้อมูลชนิดตัวเลขจานวนเต็ม ขนาด 16 บิต  MEDIUMINT ใช้สาหรับเก็บข้อมูลชนิดตัวเลขจานวนเต็ม ขนาด 24 บิต  INT ใช้สาหรับเก็บข้อมูลชนิดตัวเลขจานวนเต็ม ขนาด 32 บิต  BIGINT ใช้สาหรับเก็บข้อมูลชนิดตัวเลขจานวนเต็ม ขนาด 64 บิต  FLOAT ใช้สาหรับเก็บข้อมูลชนิดตัวเลขจานวนจริง (เลขที่มเศษทศนิยม) ขนาด 32 บิต ี  DOUBLE ใช้สาหรับเก็บข้อมูลชนิดตัวเลขจานวนจริง เช่นเดียวกับ FLOAT ขนาด 64 บิต ข้อมูลชนิดวันที่และเวลา  DATETIME ใช้สาหรับจัดเก็บข้อมูล วันเดือนปีและเวลา ขนาด 64 บิต แสดงผลใน รูปแบบ YYYY-MM-DD HH:MM:SS  DATE ใช้สาหรับจัดเก็บข้อมูลเฉพาะข้อมูลวันเดือนปี ขนาด 24 บิต แสดงผลในรูปแบบ YYYY-MM-DD  TIME ใช้สาหรับจัดเก็บข้อมูลเฉพาะข้อมูลเวลา ขนาด 24 บิต แสดงผลในรูปแบบ HHH:MM:SS โดยที่ HHH จะคืน ค่าจาก -838 ถึง 838  TIMESTAMP ใช้สาหรับเก็บข้อมูลชนิดวันที่และเวลา เช่นเดียวกับ DATETIME แต่จะ เก็ บ ในรู ป แบบของ YYYYMMDDHHMMSS หรื อ YYMMDDHHMMSS หรื อ YYYYMMDD หรือ YYMMDD แล้วแต่ว่าจะระบุค่าแอตทริบิวต์ TIMESTAMP[(M)] โดย กาหนด M เป็น 14 หรือ 12 หรือ 8  YEAR ใช้สาหรับเก็บข้อมูลปีเท่านั้น ขนาด 8 บิต แสดงผลในรูปแบบ YYYY ซึ่งเป็นค่า ตั้งแต่ 1901 - 2155 เท่านั้น ข้อมูลชนิดสตริง  CHAR ใช้สาหรับเก็บข้อมูลชนิดสตริง ขนาดสูงสุดได้ไม่เกิน 255 อักขระ ถ้าอักขระที่ใช้ ยาวไม่เท่ากับที่กาหนดไว้ อักขระที่เหลือ จะถูกแทนที่ด้วยช่องว่าง  VARCHAR (ย่อมาจาก Variable Character Field หมายถึง กลุ่มข้อมูลตัวอักขระที่ไม่ สามารถระบุความยาวได้ ) ใช้สาหรับเก็บข้อมูลชนิดสตริง ชนิดข้อมูลประเภท varchar สามารถเก็บข้อมูลตัวอักขระขนาดเท่าใดก็ได้ที่ไม่เกินความยาวที่จากัดไว้ (เก็บข้อมูล ตามที่รับมาจริงเท่านั้น) ขนาดสูงสุดได้ไม่เกิน 255 อักขระ ปริญญา น้อยดอนไพร || การเขียนโปรแกรมบนเว็บด้วย PHP ร่วมกับฐานข้อมูล MySQL
  • 24. บทที่ 1 บทนา 9  BINARY ใช้ส าหรั บ เก็บข้อมูล ชนิดเลขสองที่มีสั ญลั กษณ์เพียงสองตัว เหมือน BIT ประกอบด้วย 0 (ศูนย์) กับ 1 (หนึ่ง) บางครั้งอาจหมายถึงการที่มีโอกาสเลือกได้เพียง 2 ทาง เช่น ปิดกับเปิด ไม่ใช่กับใช่ เท็จกับจริง ซ้ายกับขวา เป็นต้น  VARBINARY ใช้สาหรับเก็บข้อมูลชนิดสตริง ขนาดสูงสุดไม่เกิน 8,000 อักขระ มีลักษณะ การเก็บคล้าย VARCHA คือ การเก็บข้อมูลตามที่รับมาจริงเท่านั้น  TINYTEXT ใช้สาหรับเก็บข้อมูลชนิดสตริง ขนาดสูงสุดไม่เกิน 255 อักขระ สามารถใช้ งานฟีเจอร์ FULL TEXT SEARCH ของ MySQL  TEXT ใช้สาหรับเก็บข้อมูลชนิดสตริง เช่นเดียวกับ TINYTEXT ขนาดสูงสุดไม่เกิน 65,535 อักขระ (64 KB) เหมาะสาหรับเก็บข้อมูลจาพวกเนื้อหาทีมีความยาวหรือจานวนมาก ่  MEDIUMTEXT ใช้สาหรับเก็บข้อมูลชนิดสตริง เช่นเดียวกับ TINYTEXT ขนาดสูงสุดไม่ เกิน 16,777,215 อักขระ (16 MB)  LONGTEXT ใช้สาหรับเก็บข้อมูลชนิดสตริง เช่นเดียวกับ TINYTEXT ขนาดสูงสุดไม่เกิน 4,294,967,295 อักขระ (4 GB)  ENUM ใช้สาหรับ เก็บ เซตของข้อมูลชุดหนึ่งที่มีจานวนสมาชิกที่กาหนดไว้แน่นอน และทราบค่าทุกตัว มักจะเป็นข้อมูลที่มีลักษณะคงที่ ขนาดสูงสุดไม่เกิน 65,535 อักขระ  SET ใช้สาหรับเก็บข้อมูลที่เป็นกลุ่มของข้อมูลที่ยอมให้เลือกได้ 1 ค่าหรือหลายๆ ค่า ซึ่ง สามารถกาหนดได้ถึง 64 ค่า ข้อมูลชนิด BLOB (Binary Large Object)  TINYBLOB ใช้สาหรับเก็บข้อมูลชนิดไบนารี ได้แก่ ไฟล์ข้อมูลต่างๆ เช่น ไฟล์รูปภาพ ไฟล์มัลติมีเดีย เป็นต้น คือ ไฟล์อะไรก็ตามที่อัพโหลดผ่านฟอร์มอัพโหลดไฟล์ในภาษา HTML ขนาดสูงสุดไม่เกิน 256 ไบต์  BLOB ใช้สาหรับเก็บข้อมูลชนิดไบนารี เช่นเดียวกับ TINYBLOB ขนาดสูงสุดได้ไม่เกิน 64,000 ไบต์  EDIUMBLOB ใช้สาหรับเก็บข้อมูลชนิดไบนารี เช่นเดียวกับ TINYBLOB ขนาดสูงสุดได้ ไม่เกิน 16 เมกะไบต์ (16 MB)  LONGBLOB ใช้สาหรับเก็บข้อมูลชนิดไบนารี เช่นเดียวกับ TINYBLOB ขนาดสูงสุดได้ไม่ เกิน 4 กิกะไบต์ (4 GB) หมำยเหตุ การกาหนดชนิด ค่าสูงสุด ค่าต่าสุด และตัวอย่างการใช้งาน สามารถอ่านรายละเอียดเพิ่มเติม ได้ ในบทที่ 14 เรื่องฐานข้อมูล MySQL และการใช้งาน phpMyAdmin ปริญญา น้อยดอนไพร || การเขียนโปรแกรมบนเว็บด้วย PHP ร่วมกับฐานข้อมูล MySQL
  • 25. 10 บทที่ 1 บทนา กำรใช้งำน MySQL เป็นที่นิยมใช้กันมากสาหรับฐานข้อมูลสาหรับเว็บไซต์ เช่น มีเดียวิกิ และ phpBB และ นิยมใช้งานร่วมกับภาษาโปรแกรม PHP เป็นหลัก ดังนั้นจะเห็นได้จากคู่มือคอมพิวเตอร์ต่างๆ ที่จะสอน การใช้งาน MySQL และ PHP ควบคู่กันไป นอกจากนี้ หลายภาษาโปรแกรมที่สามารถทางานร่วมกับ ฐานข้อมูล MySQL และรวมถึง ภาษาซี (C Language) ซีพลัสพลัส (C++) ซีชาร์ป (C#) ปาสคาล (Pascal) ภาษาจาวา (Java Language) ภาษาเพิร์ล (Perl Language) พีเอชพี (PHP) ไพทอน (Python) รูบี (Ruby) และภาษาอื่น ใช้งานผ่าน API สาหรับโปรแกรมที่ติดต่อผ่าน ODBC หรือ ส่วนเชื่อมต่อกับ ภาษาอื่น (database connector) เช่น ASP สามารถเรียกใช้ MySQL ผ่านทาง MyODBC, ADO, ADO.NET เป็นต้น ปริญญา น้อยดอนไพร || การเขียนโปรแกรมบนเว็บด้วย PHP ร่วมกับฐานข้อมูล MySQL