2.1 แสดงตวั กาํ หนดชนดิ การแสดงผลท่ีใชร วมกบั คาํ ส่งั printf ....................................................... 16
2.2 ตัวดาํ เนนิ การแปลงชนิดของขอมูล ………………………………………………………………………………… 22
2.3 ฟงกช นั ท่ีใชสาํ หรับตรวจสอบชนิดของขอ มูล…………………………………………………………………….28
2.4 คําสงวนของภาษา PHP ………………………………………………………………………………………………..31
3.1 แสดงชอื่ อิลเิ มนทของตวั แปรพิเศษ $_SERVER ที่สาํ คญั และใชง านบอย ……………………………44
3.2 ตวั ดําเนนิ การทางคณติ ศาสตร ……………………………………………………………………………………….51
3.3 ตวั ดาํ เนินการกําหนดคา ………………………………………………………………………………………………. 53
3.4 ตัวดาํ เนนิ การสําหรับเพ่ิม และลดคา ……………………………………………………………………………… 53
3.5 ตัวดําเนินการเปรยี บเทียบ ……………………………………………………………………………………………. 54
3.6 ตัวดาํ เนนิ การเปรียบเทยี บทางตรรกะ ……………………………………………………………………………. 55
6.1 แสดงความสมั พันธร ะหวา งอนิ เดก็ ซก บั คาของขอ มูลทีก่ าํ หนดใหตวั แปร $province ………….. 99
6.2 แสดงผลสรุปฟง กชันทใ่ี ชส ําหรับเรียงลาํ ดบั ขอ มูลในอารเ รยโดยใชคยี อารเรย …………………….120
6.3 สรปุ ฟง กช นั ทีใ่ ชส าํ หรับการจดั การตัวชี้ตําแหนง สมาชกิ ในอารเ รย ……………………………………121
6.4 แสดงคาคียของอารเรย $_FILE ………………………………………………………………………………….. 126
7.1 ฟงกชันทีใ่ ชจดั การรหัสแอสกี ……………………………………………………………………………………… 131
7.2 ฟง กชนั ในการตดั ชองวาง …………………………………………………………………………………………….143
7.3 ฟงกชันประมาณคา …………………………………………………………………………………………………….145
7.4 ฟงกชนั เปรียบเทยี บจํานวน …………………………………………………………………………………………146
7.5 ฟง กช ันการตรวจสอบ และจัดรปู แบบตัวเลข …………………………………………………………………146
7.6 ฟงกช นั อน่ื ๆ ทเี่ ก่ยี วของกบั ตวั เลข ………………………………………………………………………………..147
7.7 อักษรท่ีใชแ ทนความหมายของวนั และสปั ดาห สําหรับฟง กชัน date ( ) ………………………….. 150
7.8 อักษรทใี่ ชแ ทนความหมายของเดือน สําหรบั ฟง กชนั date ( )…………………………………………. 151
7.9 อกั ษรทใ่ี ชแทนความหมายของป สาํ หรบั ฟง กชัน date ( ) ………………………………………………151
7.10 อกั ษรท่ีใชแ ทนความหมายของเวลา สําหรบั ฟง กชัน date ( ) ………………………………………….151
7.11 คยี แ ละคาของอารเรยท่ไี ดจากการใชฟ ง กช นั getdate ( ) ……………………………………………… 153
8.1 ขนั้ ตอนการเขียนและอานขอ มูลในไฟล …………………………………………………………………………164
8.2 โหมดไฟล ………………………………………………………………………………………………………………….165
8.3 ฟง กชนั ที่ใชตรวจสอบเก่ียวกับไฟล ……………………………………………………………………………….177
8.4 ฟงกช ันท่ใี ชตรวจสอบเวลาทีเ่ ก่ียวของกบั ไฟล ………………………………………………………………..178
(14)
สารบญั ตาราง (ตอ )
ตารางท่ี หนาที่
8.5 คาคยี ข องตวั แปร $_FILES ………………………………………………………………………………………….184
9.1 แสดงลกั ษณะการใชงานวิธกี ารสงขอ มลู แบบ POST และ GET ………………………………………. 189
9.2 ความสัมพนั ธระหวางวิธกี ารสงและรูปแบบการเรียกใชข อมูล …………………………………………. 197
10.1 สญั ลักษณท ใ่ี ชรว มกบั Query String เพ่ือการสง คาระหวา งเวบ็ เพจ ……………………………….. 206
12.1 แสดงอเี วนตข อง JavaScript สาํ หรับกาํ หนดใหกับอิลเิ มนต ………………………………………….. 255
12.2 แสดงอีเวนตข อง JavaScript แบบพรอ็ ปเพอรต้ี …………………………………………………………… 258
12.3 แสดงตวั อยา งรหสั ทใี่ ชแ ทนปุมคียบอรด ………………………………………………………………………. 261
13.1 แสดงชนดิ ขอ มลู ของ MySQL ชนดิ ตัวเลข ……………………………………………………………………. 272
13.2 แสดงชนดิ ขอ มูลของ MySQL ชนดิ ขอ ความ ………………………………………………………………….273
13.3 แสดงชนดิ ขอ มลู ของ MySQL ชนิด BLOB …………………………………………………………………… 273
13.4 แสดงชนดิ ขอ มูลของ MySQL ชนิด SET และ ENUM …………………………………………………… 274
13.5 แสดงชนดิ ขอมลู ของ MySQL ชนิดวนั เวลา ………………………………………………………………….. 274
13.6 แสดงแอททริบิวตส าํ หรับกําหนดใหก ับขอบเขตขอมูลใน MySQL …………………………………… 274
13.7 ตวั อยา งโครงสรา งตาราง user …………………………………………………………………………………….276
13.8 ตวั อยา งโครงสรางตาราง employees ………………………………………………………………………… 277
13.9 แสดงโอเปอรเ รเตอรที่ใชงานรวมกับ WHERE ………………………………………………………………. 285
13.10 แสดงฟงกช นั Aggregate สาํ หรับใชรว มกบั GROUP BY ………………………………………………..286
13.11 ตวั อยา งตารางขอ มูลนกั ศกึ ษา ……………………………………………………………………………………..289
13.12 ตัวอยางตารางขอมลู สาขาวิชา ……………………………………………………………………………………..289
13.13 ตัวอยา งตารางขอมลู คณะ ………………………………………………………………………………………….. 289
13.14 แสดงตวั อยา งขอ มลู ในตารางขอ มลู นักศึกษา ………………………………………………………………… 289
13.15 แสดงตัวอยา งขอมลู ในตารางขอมลู สาขาวิชา …………………………………………………………………290
13.16 แสดงตวั อยา งขอ มูลในตารางขอ มลู คณะ ……………………………………………………………………….290
14.1 ตวั อยางโครงสรางตาราง customer …………………………………………………………………………… 317
ข-1 ตารางขอ มลู นกั ศกึ ษา (student) …………………………………………………………………………………366
ข-2 ตารางขอมลู สาขาวิชา (program) ………………………………………………………………………………. 366
ข-3 ตารางขอมูลคณะ (faculty) ……………………………………………………………………………………….. 366
ข-4 ตารางขอมลู โครงการ (project) …………………………………………………………………………………. 366
(15)
สารบัญตาราง (ตอ )
ตารางที่ หนา ท่ี
ข-5 ตารางขอมลู การทาํ กจิ กรรม (activity) ………………………………………………………………………… 367
ข-6 แสดงรายละเอียดของไฟลท่ีเก่ยี วของในระบบบันทกึ การทํากิจกรรมของนกั ศึกษา ……………. 368
ดชั นี
A array_merge_recursive, 128, 129, 130 abs, 155 Absolute, 163, 195 array_pad, 115, 116 Addition, 54 array_pop, 118, 119 Adobe Dreamweaver, 9, 37 array_push, 113, 115 AJAX Engine, 237, 240 array_search, 133, 135 AJAX Framework, 242, 245 array_shift, 119 AJAX, 237, 238, 239, 240, 241, array_slice, 117 array_splice, 117 242, 243, 244, 245, 246, array_unique, 113 247, 248, 249, 250, 251, array_unshift, 116 252, 253, 254, 255, 264, arsort, 124, 125, 126 265, 268, 270 asort, 124, 125, 126 AJAXCall, 246, 247, 250, 251, 252, ASP Style, 11, 37 255, 256 Assignment, 57 AJAXLoad, 245, 246, 247, 250, Asynchronous JavaScript and 251, 255 AppServ, 163, 164, 167, 169 XML, 237 argument, 83 Asynchronous, 237, 238, 241 Arithmetic Operators, 53 Attribute, 275 Array Data Types, 22 AUTO_INCREMENT, 276, 279, 331 array pointer, 79 AVG, 291 array, 99, 100, 102, 103, 104, 107, 108, 109, 110, 111, 113, B 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, BIGINT, 8 124, 125, 126, 128, 129, Binary Large Object, 9 130, 131, 132, 133, 135, BINARY, 9, 276 137, 141 BIT, 7, 9 array_combine, 128, 131 Bitwise Operators, 60 array_count_values, 121 BLOB, 9 array_diff, 137 break, 68, 69, 76, 77, 80, 81, 82 array_intersect, 135 Built-in Functions, 83 array_key_exists, 133 array_merge, 128, 129, 130 C
$_COOKIE, 45, 46, 47, 210, 211 ceil, 153, 169 CHAR, 8 Checkbox, 194
418 ดชั นี
checkdate, 165, 166 Default Parameter, 89 chmod, 186 Default Syntax, 9, 12, 37 chr, 131, 133 DEFAULT, 276 Class, 221, 222, 235, 236 default, 68, 69, 82 Client Side script, 1 DESC, 270, 271, 272, 281, 292 Client, 1, 2, 5 DESCRIBE, 270, 271, 272 Client-Server, 5 Directory, 163, 182, 195 closedir, 182, 183 dirname, 184, 185, 186, 188 Code, 3, 4 Division, 54 Comment, 12 Document Root, 163, 164, 169 Comparison, 58 Dollar Sign, 33 Compound Data Types, 22 Double Quotes, 21, 34, 35 Conditional Structures, 61 DOUBLE, 8 Constants variables, 34 DROP, 272 Constructor, 231 Dynamic Web page, 1 continue, 80, 82, 83 Control Structures, 61 E Converting Types Functions, 31 Cookie, 209 $_ENV, 45, 46 copy, 138, 140, 189 each, 107, 108, 109, 128 count, 106, 107, 108, 119, 120, echo, 9, 10, 11, 12, 14, 15, 16, 19,
121, 141 22, 34, 35, 37 COUNT, 291 EditPlus, 9, 37 COUNT_RECURSIVE, 120 EDIUMBLOB, 9 CREATE DATABASE, 277 Element, 45, 99 CREATE TABLE, 321 empty, 48, 49, 50 current, 128 end, 128 CVS, 307, 308, 310 endfor, 61 endforeach, 61 D endif, 61 endswitch, 61 Data Sets, 99 endwhile, 61 Database, 269, 270, 273, 278, 308 Engine, 4, 6, 14 DATABASE, 277, 298 ENUM, 9 date, 156, 157, 158, 159, 161, Error suppression Operator, 61 Execute Command Operator, 62 162, 163, 164, 165, 166, EXIT, 272 167, 169, 170 explode, 139, 140, 173 date_default_timezone_set, 156, Expressions, 52 162, 164 Extensible Markup Language, 241 Decimal, 20
ปรญิ ญา นอ้ ยดอนไพร || การเขยี นโปรแกรมบนเวบ็ ดว้ ย PHP รว่ มกับฐานข้อมูล MySQL
F ดชั นี 419
$_FILES, 137, 138, 140, 191, 192, foreach, 80, 81, 103, 104, 123, 193, 194 124
Fatal Error, 98, 99 Form, 3 fclose, 168, 169, 170, 172, 173, Formatted String, 16 fpassthru, 178, 179 175, 177, 180, 196 fputs, 168, 170, 171, 172, 196 feof, 173, 174, 175, 177 fread, 174, 175 fgetc, 173, 174 FTP, 167 fgets, 175 Function Libraries, 96 fgetss, 175, 177 Function parameters, 39 Field, 270, 272, 309 Function, 3 File Field, 197 fwrite, 168, 169, 170, 172, 180 File Mode, 165 File Pointer, 166 G file, 167, 168, 169, 170, 171, 172, $_GET, 45, 46, 199, 207 173, 178, 179, 180, 181, GET, 192 188, 189, 190, 191, 192, getdate, 163, 164 193, 194, 195, 196 getFormData, 246, 250, 251, 255 file_exists, 170, 177, 188, 196 gettype, 25, 26, 27, 28, 29, 31, 34, file_get_contents, 173, 179, 180 file_put_contents, 168, 172, 173, 35 177 Global variables, 39 fileatime, 182 GLOBAL, 42, 43 filectime, 182 gmmktime, 166, 167 filemtime, 182 GMT, 156, 157, 161, 166 filesize, 175, 178, 179, 191, 194, Grave Accent, 63 195 Greenwich Mean Time, 156, 166 filetype, 183, 195 GROUP BY, 288, 291 Flag, 275 Flat File, 164 H FLOAT, 8 floatval, 154 HAVING, 288 floor, 154, 171, 172 header, 164, 178, 179, 203, 204, fopen, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 205, 206, 208, 223, 224, 175, 177, 178, 179, 180, 225, 226, 248, 249, 251, 196 253, 257, 265, 324, 329, 330 Hexadecimal, 20 Hidden Field, 197 HTML, 1, 4, 5, 6, 9, 11, 12, 14, 37, 38
ปริญญา นอ้ ยดอนไพร || การเขียนโปรแกรมบนเว็บดว้ ย PHP รว่ มกบั ฐานขอ้ มลู MySQL
420 ดัชนี
HTTP, 3, 4, 5, 46 is_resource, 33, 36 HTTP_REFERER, 45 is_scalar, 33 Hypertext Markup Language, 1 is_string, 33 Hypertext Transfer Protocol, 3 is_upload_file, 192 is_uploaded_file, 192 I is_writable, 181 isset, 48, 49, 51, 210, 211, 214, iconv, 248 if ... else Statement, 63 215, 224 if ... elseif Statement, 65 IF NOT EXISTS, 277 J if Statement, 61 if, 34, 35, 36, 37, 140, 169, 170, JavaScript, 237, 238, 241, 242, 246, 248, 249, 250, 251, 171, 193, 196 252, 253, 254, 256, 257, IMAP, 2 260, 270 implode, 140, 173, 179 in_array, 133, 135 join, 140 include, 97, 98, 99, 222, 225, 227, K 229, 234 include_once, 97, 98 Key, 99, 104, 127 Increment & Decrement, 57 ksort, 124, 125, 126, 127 INDEX, 276, 277, 281, 282, 297, L 300 Inheritance, 235 LDAP, 2 INSERT INTO, 284, 285, 308 LIMIT, 285, 286, 289, 292 Instance, 223 list, 107, 109 INT, 8 Local Mean Time, 156 Internet, 2, 5 Local variables, 39 intval, 154, 170 localhost, 163, 305, 307, 308, IP Address, 45 is_array, 33 309, 310, 311, 312, 313, is_bool, 33, 34 315, 316, 317, 318, 319, is_float, 33, 155 324, 326, 329, 330, 331, is_int, 33, 35, 155 332, 335, 339, 340, 342 is_integer, 33 LONGBLOB, 9 is_null, 33 LONGTEXT, 9 is_numeric, 33, 155 Loop Structures, 61 is_object, 33 ltrim, 148, 149 is_readable, 181 is_real, 33 M
max, 154 MAX, 291 MEDIUMINT, 8 MEDIUMTEXT, 9
ปรญิ ญา น้อยดอนไพร || การเขียนโปรแกรมบนเวบ็ ดว้ ย PHP รว่ มกบั ฐานข้อมูล MySQL
ดชั นี 421
Method, 221, 223 mysql_fetch_object, 319, 320, min, 154 335 MIN, 291 mkdir, 186, 188 mysql_fetch_row, 316, 317, 335, mktime, 162, 164, 165, 166, 171 336 Modifier, 226 Modulus, 54, 57 mysql_free_result, 313, 314, 315, move_uploaded_file, 138, 140, 316, 317, 319, 320, 326, 328, 333, 336, 341, 342 192, 194 Multiple-Line C Syntax, 14 mysql_insert_id, 331, 332 Multiplication, 54 mysql_list_dbs, 334, 335 MySQL link identifier, 305, 306, mysql_list_fields, 337, 338 mysql_num_rows, 315, 333, 340 307, 308, 310, 312, 313, mysql_pconnect, 305, 306, 307, 330, 331, 333, 335, 336, 338 309, 310, 311, 312, 313, MySQL, 2, 3, 7, 9, 10, 269, 272, 315, 316, 317, 318, 320, 273, 274, 275, 276, 281, 324, 326, 329, 332, 335, 284, 296, 297, 298, 30, 336, 339, 340, 341, 342 306, 307, 308, 309, 310, mysql_query, 311, 312, 313, 314, 311, 312, 313, 320, 321, 315, 316, 317, 318, 319, 323, 326, 329, 330, 331, 320, 324, 326, 329, 330, 333, 335, 336, 338, 339, 331, 332, 335, 336, 337, 341 338, 339, 340, 341, 342 mysql_affected_rows, 330, 331 mysql_select_db, 310, 311, 312, mysql_close, 306, 307, 308, 309, 313, 315, 316, 317, 318, 310 320, 324, 326, 329, 331, mysql_connect, 305, 306, 307, 332, 339, 340, 341, 342 308, 309, 330, 331, 341 mysql_data_seek, 332, 333 N mysql_error, 309, 310, 311, 312, 315, 316, 317, 319, 320, next, 128 324, 326, 329, 331, 332, nl2br, 151 333, 336, 337, 338, 339, NOT NULL, 276, 278, 279, 280, 340, 342 mysql_fetch_array, 318, 319, 335 281, 282, 289 mysql_fetch_assoc, 312, 314, Notepad, 9, 37 325, 326, 333, 335, 338, Notepad++, 9, 37 342 NULL, 40, 47, 48, 49, 50, 51 number_format, 155 Numeric Data types, 7
O
Object Data Types, 24
ปรญิ ญา นอ้ ยดอนไพร || การเขยี นโปรแกรมบนเวบ็ ดว้ ย PHP รว่ มกับฐานข้อมลู MySQL
422 ดชั นี
Object Oriented Programming, 2, Protocol, 2 221 Q Octal, 20 Open source, 2 Query String, 45, 46, 206, 207, opendir, 182, 183 208, 209, 212, 226, 243, 246 Operands, 52 Operating System, 2 Query, 269, 305, 306 Operators, 52, 53, 60 QUERY_STRING, 45 ord, 131, 133 QUIT, 272 ORDER BY, 289, 292, 295, 296 R P Radio Button, 193 $_POST, 45, 46, 198, 199, 200, rand, 155 201, 202, 214, 223, 224 range, 100, 103, 104, 105 readdir, 183 page description language, 6 readfile, 177, 178, 179, 192 Parameter, 15 Recursive Functions, 94 parse_str, 208, 209 Reference assignment, 34 Passing Parameter by Value and Relational Database Management
Reference, 91 System, 7, 269 pathinfo, 184, 185, 186 REMOTE_ADDR, 45 Personal Home Page, 3 rename, 189, 190 PHP Hypertext Preprocessor, 1, 4 require, 97, 98, 99, 222 PHP_SELF, 45 require_once, 97, 98 phpMyAdmin, 269, 296, 297, 298 Reserved Words in PHP, 36 PHP-Tools, 3, 4 Reset Button, 196 POP3, 2 reset, 128 POST, 191 Resource, 165, 168, 170 pow, 156, 173 Retrieving Types Functions, 30 prev, 128 return, 41, 64, 92, 93, 94, 95, 96 PRIMARY KEY, 277, 279, 280, 281, Returning Multiple Values, 93 Returning Single Value, 92 282 rewinddir, 183 print, 14, 15, 16, 37 rmdir, 188 print_r, 100, 102, 103, 105, 106, round, 154 rsort, 122, 123, 124 110, 111, 113, 115, 116, rtrim, 148, 149 117, 118, 119, 121, 130, 131, 132, 135, 137, 141 S printf, 14, 16, 17, 18, 25, 26, 27, 28, 29, 30, 31, 38 $_SERVER, 44, 45, 208 Procedural, 221
ปรญิ ญา นอ้ ยดอนไพร || การเขยี นโปรแกรมบนเว็บดว้ ย PHP ร่วมกบั ฐานข้อมูล MySQL
ดชั นี 423
$_SESSION, 45, 47, 214, 215, 217, SMALLINT, 8 219, 220, 224, 225, 226 SNMP, 2 sort, 113, 122, 123, 124, 125 Scalar Data Types, 19 SORT_FLAG_CASE, 122, 123 Script Language, 1 SORT_NATURAL, 122, 123 Script Style, 10, ดู SORT_NUMERIC, 113, 122 SELECT, 282, 283, 284, 286, 287, SORT_REGULAR, 113, 122, 124,
288, 289, 290, 291, 292, 125 293, 295, 296, 312, 314, SORT_STRING, 113, 122 315, 316, 317, 318, 320, Source Code, 4 324, 326, 332, 337, 339, sprintf, 14, 18, 19, 312, 313, 314, 340, 342 Semicolon, 12, 37 315, 316, 317, 318, 320, Server Side script, 1 324, 326, 329 Server, 1, 2, 5 sqrt, 156 session_decode, 217, 218, 219 Statement, 1, 2 session_destroy, 215, 221, 226 Static variables, 39 session_encode, 217, 219 Static Web page, 1 session_id, 216, 217 STATIC, 44 session_is_registered, 220, 221 STD, 291 session_regenerate_id, 217 STDDEV, 291 session_register, 219, 220, 221, str_ireplace, 146, 147 223, 226 str_pad, 149, 151, 169 session_start, 47, 213, 214, 215, STR_PAD_BOTH, 150, 151 217, 219, 220, 221, 223, STR_PAD_LEFT, 150, 151, 169 224, 226 STR_PAD_RIGHT, 149, 150 session_unregister, 219, 220 str_replace, 144, 146, 147 session_unset, 220 str_word_count, 134, 135 SET, 9 String Concatenation, 55 settype, 31, 32 String, 131 SGML Style, 10, 37 stripos, 144 Shell Syntax, 13 strlen, 133, 134, 143, 149 Short Tags, 10, 37 strpos, 143, 144 SHOW DATABASES, 269, 277 strstr, 140, 141, 142 SHOW TABLES, 270 strtolower, 135, 137, 139 SID, 212, 216, 217 strtotime, 157, 158, 159, 162, 169, Single Quotes, 21, 34, 35 174 Single-Line C++ Syntax, 13 strtoupper, 136, 137 sizeof, 120, 121, 141 strtr, 147
ปริญญา นอ้ ยดอนไพร || การเขยี นโปรแกรมบนเวบ็ ดว้ ย PHP ร่วมกบั ฐานขอ้ มลู MySQL
424 ดัชนี
Structure Query Language, 269 URL, 45, 46, 163, 167, 203, 204, Structure Query Language, 7 206, 207, 208, 209, 212 Submit Button, 196 substr, 142 USE, 270, 278 substr_count, 142, 143 User Defined Functions, 83 Subtraction, 54 UTC, 156 SUM, 291 utf-8, 248 Super Global variables, 39 switch Statement, 67 V
T Value assignment, 33 Value, 99, 126 Table, 273, 299 var_dump, 102 Ternary Operator, 61 VARBINARY, 9 Text File, 164 VARCHAR, 8 TEXT, 9 Variable Character Field, 8 time, 157, 158, 159, 163, 164, Variable variables assignment, 34 Variable, 33, 34, 39 166, 169, 171 Version, 4 TIME, 8 vi, 9, 37 Timestamp, 164, 182 Timezone, 156 W TINYBLOB, 9 TINYINT, 8 Web Browser, 1 TINYTEXT, 9 Web Client, 5 tis-620, 248, 249, 251, 253, 257, web content, 206 Web page, 1 265 Web Site, 1 trim, 148, 149 Webpage Redirect, 203, 204 Type-Related Functions, 30 WHERE, 282, 283, 285, 286, 288,
U 289, 290, 295, 296 whitespace, 149 ucfirst, 137 wordwrap, 153 ucwords, 137, 139, 173 UNIQUE, 276, 279, 280, 281, 282 X Unix Timestamp, 157, 164 unlink, 180 XML Style, 9, 12, 37 unset, 48, 50, 51, 117, 118, 215, XML, 237, 238, 240, 241, 242
220 Y UPDATE, 285, 286, 314, 320, 329, YEAR, 8 330 Upload, 9 ก
การกาํ หนดตวั แปรค่าคงท,่ี 37 การเข้าถึงขอ้ มลู ภายในอาร์เรย,์ 106 การเขยี นข้อมลู ลงในไฟล,์ 168
ปริญญา น้อยดอนไพร || การเขยี นโปรแกรมบนเวบ็ ด้วย PHP รว่ มกบั ฐานข้อมูล MySQL
ดชั นี 425
การเขียนโปรแกรมเชิงวตั ถุ, 24, 221 ค การจดั การกบั ไฟล์, 164 การปิดไฟล์, 167 คลาส, 24, 25, 96, 98, 99, 221, 222, การลบไฟล,์ 180 223, 224, 225, 226, 227, การสง่ ผ่านค่าพารามิเตอร์แบบส่งผ่าน 228, 229, 230, 231, 233, 234, 235, 236, 237, 238 ค่าแบบปกติ, 91 การส่งผ่านคา่ พารามิเตอร์แบบอา้ งอิง, คอนสตรกั เตอร,์ 231 คัดลอกไฟล,์ 189 92 คํานวณอายุ, 171 การสบื ทอด, 235 คําสงวนของภาษา PHP, 36 การอ้างตําแหน่งของอินเดก็ ซ,์ 106 คาํ สอบถามหรอื คําสัง่ , 269 การอา่ นข้อมลู จากไฟล์, 173 คาํ อธิบาย, 12, 13, 14 กําหนดค่าตัวแปร, 33 คีย,์ 22, 24, 78, 79, 99, 102, 105, กําหนดค่าตัวแปรซอ้ นตัวแปร, 34, 36 กาํ หนดค่าตัวแปรโดยการอา้ งองิ , 34, 106, 107, 108, 109, 110, 111, 112, 121, 122, 124, 36 125, 126, 127, 128, 129, กาํ หนดค่าตวั แปรปกต,ิ 33 130, 131, 132, 133, 137, 138, 140, 147, 163, 184, ข 191, 210, 214, 314, 318, 321 ขอ้ ความ, 131, 133, 134, 135, 136, คุกกี้, 203, 209, 210, 211, 212, 214, 137, 138, 139, 140, 141, 226 142, 143, 144, 145, 146, คูณ, 40, 41, 42, 43, 52, 54, 55, 57 147, 148, 149, 151, 153, เครอ่ื งหมายวงเลบ็ ก้ามป,ู 100, 101, 154, 155, 157, 158, 168, 102 169, 170, 171, 172, 173, โครงสรา้ งควบคมุ , 20, 34, 61, 70, 84 175, 179, 208, 209, , 253, โครงสร้างเงอ่ื นไข if ... else, 63, 64, 257, 258, 265, 267, 273, 65 274, 302, 303, 304, 308, โครงสรา้ งเงื่อนไข if ... elseif, 65, 66 309, 312, 313, 314, 316, 336 โครงสร้างเงอ่ื นไข if, 34, 61, 63, 64, 65, 67, 69, 70, 167, 169, ขอบเขตของตัวแปร, 39 171, 221, 224 ขอบเขตของฟอร์ม, 189 โครงสร้างเงื่อนไข switch, 67, 68, 69, ขอบเขตข้อมูล, 270, 273 70, 82 ข้อมลู ชนิดข้อความ, 9, 21 โครงสร้างเงื่อนไขทาํ ซา้ํ do ... while, ข้อมูลชนิดตวั เลข, 7 72, 73 ขอ้ มูลชนิดบูลนี , 19, ดู โครงสร้างเงือ่ นไขทําซํา้ for, 73, 74, ขอ้ มูลชนิดไบนารี, 9 75, 76, 77, 78, 108 ขอ้ มลู ชนิดเลขจํานวนจรงิ , 21 ข้อมูลชนิดเลขจาํ นวนเตม็ , 20 ข้อมูลชนิดเลขฐานสอง, 9 ข้อมูลทเี่ ป็นกลมุ่ ของข้อมูล, 9
ปริญญา นอ้ ยดอนไพร || การเขียนโปรแกรมบนเว็บดว้ ย PHP รว่ มกบั ฐานขอ้ มลู MySQL
426 ดชั นี
โครงสรา้ งเงอ่ื นไขทําซา้ํ foreach, 79, ไดนามกิ เว็บเพจ, 1, 6, 10 81 ไดเรกทอร,ี 163, 164, 165, 167, 182,
โครงสรา้ งเงอ่ื นไขทาํ ซา้ํ while, 70, 71, 183, 184, 185, 186, 188, 72, 82, 83, 174, 314 189, 191, 192, 195, 196
ไคลเอนต,์ 1, 2, 10, 137, 237, 238, ต 239, 240 ตรวจสอบและยกเลิกตัวแปร, 48 ไคลเอนตไ์ ซดส์ ครปิ ต์, 1 ตวั กําหนดชนิดการแสดงผลท่ีใช้ร่วมกับ
จ คําส่งั printf, 17 ตัวชต้ี าํ แหน่งข้อมลู ในไฟล,์ 166, 171 จดั การกบั ไดเรกทอรี, 182 ตัวช้ีตาํ แหน่งสมาชกิ ในอาร์เรย,์ 79 จัดรูปแบบตวั เลข, 155 ตัวดาํ เนนิ การ, 33, 52, 53 ตัวดําเนนิ การกําหนดค่า, 53, 57 ช ตวั ดําเนนิ การเชือ่ มตอ่ ขอ้ ความ, 53, 55 ตวั ดาํ เนนิ การใช้เงือ่ นไขในการ ชนิดข้อมูลแบบชุด, 22 ชนดิ ขอ้ มูลพ้ืนฐาน, 19 กําหนดค่า, 61, 62 ชนิดขอ้ มูลวัตถ,ุ 24 ตวั ดาํ เนนิ การทางคณติ ศาสตร,์ 53, 54 ชนิดขอ้ มลู สําหรับกําหนดใหก้ บั ขอบเขต ตวั ดาํ เนนิ การเปรียบเทียบ, 53, 58 ตวั ดาํ เนนิ การเปรียบเทียบทางตรรกะ, ข้อมูล, 273 ชอ่ งรบั ข้อความบรรทัดเดยี ว, 190 53, 60 ชอ่ งรับข้อความรหัสผ่าน, 191 ตวั ดาํ เนนิ การแปลงชนิดของข้อมลู , 25 ช่องรับข้อความหลายบรรทัด, 190 ตวั ดําเนนิ การเพม่ิ และลดค่า, 53, 57 ตวั ดําเนนิ การระงับการเกดิ ข้อผิดพลาด, ซ 61, 62, 63 ซอรส์ โค้ด, 4 ตวั ดําเนนิ การเรียกใชค้ ําส่ังของ เซสชนั , 47, 203, 212, 214 เซิร์ฟเวอร์, ระบบปฏิบตั กิ าร, 62 เซิร์ฟเวอร์, 1, 2, 3, 4, 5, 6, 10, 167, ตวั ถกู กระทาํ , 52 ตวั แปร, 33, 49, 57, 63, 64, 65, 67, 191, 192, 194, 195, 237, 238, 239, 240, 242, 243, 68, 69, 70, 71, 73, 74 245, 246, 247, 248, 249, ตวั แปรคงที่, 39, 43, 44 250, 251, 252, 254, 257, ตวั แปรเฉพาะท่ี, 39, 40, 44 258 ตัวแปรทม่ี ีคา่ NULL, 39, 47 เซิรฟ์ เวอร์ไซด์สคริปต,์ 1, 2 ตัวแปรพเิ ศษ, 39, 43, 44, 45, 46, 47,
ฐ 200 ตัวแปรฟงั กช์ นั พารามิเตอร์, 39, 40, 41 ฐานขอ้ มูล, 269, 270, 272, 273, 276, ตัวแปรสาธารณะ, 39, 42, 43 277, 278, 293, 296, 298, ตัวเลข, 131, 149, 166, 172 299, 301, 302, 304, 306, ตวั เลือกทเ่ี ลือกตอบได้เพียงข้อเดยี ว, 308, 309, 310, 311 193 ด
ดาวนโ์ หลด, 4
ปริญญา น้อยดอนไพร || การเขยี นโปรแกรมบนเวบ็ ดว้ ย PHP รว่ มกบั ฐานข้อมูล MySQL
ดชั นี 427
ตัวเลอื กแบบ Menu, 193 เปดิ ไฟล,์ 165 ตาราง, 269, 270, 271, 272, 273, เปดิ ไฟลส์ าํ หรับการเขียน, 165 เปดิ ไฟลส์ าํ หรบั การเขียนและอา่ น, 166 274, 275, 276, 277, 278, เปิดไฟลส์ าํ หรับการเพ่มิ , 166 279, 280, 281, 282, 283, เปิดไฟล์สําหรับการอา่ น, 165 284, 285, 286, 288, 289, เปิดไฟลส์ ําหรบั การอ่านและเขียน, 165 290, 291, 293, 294, 295, แปลงคา่ ขอ้ มลู ชนิดเลขจํานวนจริงเปน็ 296, 298, 299, 300, 301, เลขจํานวนเตม็ , 26 302, 303, 304, 305, 308, แปลงค่าข้อมูลปกติเป็นข้อมลู ชนดิ วัตถุ, 310, 311 28 แปลงคา่ ข้อมูลปกตเิ ป็นขอ้ มูลชนิด ท อารเ์ รย,์ 28 โปรแกรมเชิงวัตถุ, 2, 3 เทก็ ซไ์ ฟล,์ โปรโตคอล, 2, 4, 5, 46 เท็กซ์ไฟล,์ 100, 105, 106, 164, 165, พ 166, 169, 171, 202 เทียบเวลาวินาท,ี 172 พรอ็ ปเพอร์ต้ี, 221 แทรกขอ้ มลู ลงในตาราง, 284 พารามเิ ตอร์, 15, 17, 33, 39, 40, 41,
น 80, 81, 82, 83, 84, 85, 88, 89, 90, 91, 95, 99, 104, นําเข้าข้อมลู จากไฟล,์ 197 113, 116, 120, 122, 124, นาํ เข้าขอ้ มลู แบบซอ่ น, 197 125, 135, 147, 159, 163, นิพจน์, 33, 51, 52, 53, 54, 58, 60, 164, 165, 166, 169, 171, 61, 83, 93, 94, 206 186, 204, 205, 208, 210, 225, 228, 231, 292, 308, บ 313 พารามิเตอรแ์ บบกําหนดค่าเรม่ิ ตน้ , 89 บวก, 36, 52, 54, 55, 57, 58 พารามเิ ตอรแ์ บบสง่ ผ่านคา่ โดยการ บนั ทกึ ข้อมูลลงไฟล์, 165 อ้างอิง, 91
ป ฟ
ปฏทิ ินออนไลน,์ 169, 171 ฟอร์ม, 3, 9, 46, 138, 189, 190, 191, ปรบั ปรุงข้อมลู ในตาราง, 285 192, 193, 194, 195, 196, ปรบั เปลย่ี นชนิดขอ้ มูลแบบอตั โนมตั ,ิ 197, 198, 199, 202, 207, 29 221, 222, 223, 243, 245, ปปี กติสรุ ทนิ , 154 246, 257, 258, 301, 303, ปีอธกิ สรุ ทิน, 154 323 ปุ่มตัวเลอื กแบบปุ่มกลม, 193 ปุ่มตวั เลอื กแบบป่มุ เหลี่ยม, 194 ฟงั ก์ชันคน้ หาขอ้ ความ, 143 ปุ่มลา้ งข้อมลู , 196 ปุ่มสง่ ขอ้ มลู , 196 ปุ่มสง่ ค่าข้อมูลแบบรูปภาพ, 197 ปุ่มสั่งงาน, 195 เปลี่ยนแปลงช่ือไฟล์, 189
ปรญิ ญา นอ้ ยดอนไพร || การเขยี นโปรแกรมบนเว็บดว้ ย PHP ร่วมกับฐานข้อมลู MySQL
428 ดัชนี ภ
ฟังกช์ นั ที่เก่ยี วกับการคาํ นวณทาง ภาษา C, 2, 3, 12 คณิตศาสตร์, 83 ภาษา HTML, 1, 2, 3, 4, 6 ภาษา Perl, 2 ฟงั ก์ชนั ท่เี กี่ยวกบั การจัดการขอ้ ความ, ภาษา SQL, 7 83 ภาษา XML, 12 ภาษาสครปิ ต์, 1, 2, 10 ฟังก์ชันที่เกย่ี วกบั การตดิ ต่อกับ ฐานขอ้ มลู , 83 ม
ฟงั ก์ชนั ที่เก่ียวกับวันทแ่ี ละเวลา, 83 เมธอด, 223 ฟังก์ชันทเี่ กยี่ วขอ้ งกบั ชนิดข้อมลู , 30 โมดิฟายเออร์ แบบ public และ ฟังกช์ นั ท่ีใช้จัดการข้อความ, 131 ฟงั ก์ชันทีใ่ ช้จัดการจํานวนและตัวเลข, private, 226 โมดฟิ ายเออร์, 226 153 โมดฟิ ายเออร์แบบ static, 233 ฟงั ก์ชันที่ใช้จดั การรหสั แอสก,ี 131 ฟังกช์ นั ทใ่ี ชจ้ ดั การวันและเวลา, 156 ย ฟังก์ชันทใ่ี ชจ้ ัดการอักษรพิเศษของ ยา้ ยไดเรกทอร,ี 189 HTML, 151 ยา้ ยหนา้ เว็บเพจ, 204 ฟงั กช์ ันทใ่ี ชส้ ําหรบั ตรวจสอบชนิดของ ยา้ ยหนา้ เวบ็ เพจแบบ refresh, 205
ข้อมูล, 33 ร ฟังก์ชนั ทใี่ ช้สําหรับตัดช่องว่างและเตมิ ระบบจัดการฐานข้อมูลเชงิ สมั พันธ,์ 7 ขอ้ ความ, 148 ระบบปฏบิ ตั กิ าร, 2, 3 ฟังก์ชันทใ่ี ชส้ ําหรบั แยกและรวม ล ข้อความ, 139 ฟงั ก์ชนั ทผ่ี ู้ใชง้ านเป็นผ้สู รา้ งเอง, 83, ลบ, 54, 55 ลบข้อมูลในตาราง, 286 85, 86 ไลบรารฟี งั กช์ ัน, 83 ฟงั กช์ นั ที่มกี ารส่งผ่านคา่ พารามเิ ตอร์, ว 85 ฟังก์ชันท่ไี ม่มีการสง่ ผา่ นค่าพารามิเตอร์ วนั และเวลา, 131 วางตัวดําเนนิ การ, 58 , 85 เว็บ, 5 ฟังก์ชนั แทนท่ขี ้อความ, 144 เวบ็ แคช, 206 ฟังกช์ นั แบบเรียกตวั เอง, 94 เว็บไคลเอน็ ท,์ 5 ฟังกช์ ันแปลงชนดิ ขอ้ มูล, 31 เวบ็ เซริ ฟ์ เวอร์, 2, 4, 5, 6, 9, 44, 137, ฟังกช์ ันพารามิเตอร์, 89 ฟงั กช์ นั มาตรฐาน, 83, 85 189, 203, 212 ฟงั กช์ ันเรียกดูชนดิ ของขอ้ มูล, 30 เว็บไซต,์ 1, 3, 4, 5, 9, 46, 47 ฟงั ก์ชันไลบราร,ี 96 เว็บบราวเซอร์, 1, 2, 4, 5, 9, 10, 11, ฟังก์ชนั สาํ หรับการคน้ หาอินเด็กซ์, 133 ฟังก์ชันสาํ หรับการรวมอาร์เรย,์ 128 14, 47, 189, 200 แฟล็ก, 275
ปริญญา นอ้ ยดอนไพร || การเขียนโปรแกรมบนเวบ็ ดว้ ย PHP รว่ มกับฐานข้อมูล MySQL
ดชั นี 429
เว็บเพจ, 1, 4, 5, 6, 9, 10, 12 ,45, อารเ์ รย,์ 19, 22, 24, 25, 28, 32, 33, 46, 93, 97, 99, 139, 164, 43, 45, 78, 79, 80, 81, 99, 200, 203, 222, 224, 242, 100, 101, 102, 103, 104, 323 105, 106, 107, 108, 109, 110, 111, 113, 114, 115, เวบ็ เพจแบบคงท,ี่ 1, 6 116, 117, 118, 119, 120, เวบ็ แอพพลเิ คชนั , 189, 225, 241, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 306, 330, 341 131, 133, 134, 135, 137, เวอรช์ นั , 4 139, 140, 141, 145, 147, 154, 163, 171, 172, 179, ศ 184, 185, 186, 210, 214, 308, 309, 317, 318 เศษจากการหาร, 54 อินเด็กซ์, 99, 100, 101, 103, 104, ส 105, 106, 107, 121, 123, 127, 128, 130, 131, 133, สง่ ค่ากลบั แบบหลายคา่ , 93 134, 140, 186, 317, 318 สง่ ค่ากลบั หนึง่ คา่ , 92 สร้างฐานข้อมลู , 277 อนิ เทอรเ์ น็ต, 5 สร้างตาราง, 277 อินสแตนซ,์ 223, 224, 229, 230, สร้างและลบไดเรกทอรี, 186 สอบถามเพอ่ื เรยี กดขู อ้ มูลในตาราง, 233, 234, 236, 237 อิลิเมนต,์ 45, 99, 140 286 อีเวนต์, 257 แสดงขอ้ ผดิ พลาด, 98 อเี วนตเ์ กี่ยวกับคียบ์ อรด์ , 262 อเี วนต์เก่ยี วกับเมาส,์ 261 ห แอททริบวิ ต,์ 191, 275, 278 โอเพน่ ซอร์ส, 2, 7 หาร, 54, 55, 57 โหมดไฟล์, 165 ฮ
อ เฮดเดอร์, 203
ออบเจ็กต์, 221, 223, 231, 233, 235, 237
อกั ษรทใ่ี ชแ้ ทนความหมายของปี, 161 อกั ษรทีใ่ ช้แทนความหมายของเวลา,
161 อักษรทใ่ี ช้แทนความหมายเดือน, 161 อพั โหลด, 9, 137, 138, 139, 140,
191, 192, 194 อากิวเมนต์, 83 อา้ งอิงตาํ แหนง่ ไฟล์และไดเรกทอร,ี
163 อ้างองิ พาธแบบ Absolute, 163, 164 อา้ งอิงพาธแบบ Relative, 164 อา่ นข้อมูลจากไฟล,์ 165
ปรญิ ญา นอ้ ยดอนไพร || การเขียนโปรแกรมบนเวบ็ ดว้ ย PHP ร่วมกับฐานข้อมลู MySQL
บทท่ี 1 บทนาํ
ในชวงแรกๆ ภาษาท่ีนิยมใชในการพัฒนาเว็บไซต (Web Site) คือ ภาษา HTML (Hypertext Markup Language) โดยภายในหนาเว็บเพจ (Web page) จะประกอบไปดวย ตวั อักษร ภาพ หรืออื่นๆ ท่ีไมสามารถเปลี่ยนแปลงขอมูลไดดวยตัวเอง ไมสามารถคํานวณ ประมวลผลขอมูล หรือเชื่อมตอกับ ฐานขอมูลได เปนแคสวนของการแสดงผลของหนาเว็บเพจเทาน้ัน หรือเรียกวา หนาเว็บเพจแบบคงที่ (Static Web page) ตอมาไดพัฒนาภาษาที่ขอมูลจะถูกเปลี่ยนแปลงโดยอัตโนมตั ิตามเงื่อนไขตางๆ ท่ีผูเขยี นกาํ หนดไว หรือเรียกวา ไดนามิกเว็บเพจ (Dynamic Web page) ในปจจุบันมหี ลายภาษาท่ีถูก พัฒนาขึน้ มา มลี กั ษณะเปนภาษาสครปิ ต (Script Language) ทส่ี ามารถติดตอกับผูใช ฐานขอ มูล คํานวณ และประมวลผลตามเงื่อนไขตางๆ ได และหน่ึงในภาษาสคริปตท่ีไดรับความนิยมในปจจุบันก็คือ ภาษา PHP (PHP Hypertext Preprocessor)
1.1 ประเภทของภาษาสคริปต ภาษาสคริปต มี 2 ประเภท ประกอบดวย 1.1.1 ไคลเอนตไ ซดส ครปิ ต (Client Side script) ไคลเอนตไซดสคริปต คือ เทคโนโลยีที่สคริปตมีการประมวลผลและแปลคําส่ัง
(Statement Translation) ในฝงของเคร่ืองผูใช เชน จาวาสคริปต สวนมากจะใชวิธีการเขียนสคริปต แทรกลงไปในภาษา HTML และถูกประมวลผลโดยเว็บบราวเซอร (Web Browser) เพ่ือโตตอบกับ ผูใชงาน เชน การแสดงขอ ความเตอื น การตรวจสอบขอ มูลทผี่ ูใ ชป อ น เปนตน
1.1.2 เซิรฟ เวอรไ ซดส คริปต (Server Side script) เซิรฟ เวอรไซดสคริปต คอื เทคโนโลยีทส่ี คริปตทีม่ ีการประมวลผลและแปลคําส่ังในฝงของ
เครื่องเซิรฟเวอร (Server) แลว แปลงเปนเอกสารในรูปแบบของภาษา HTML แลวสงผลลัพธทไ่ี ดกลับไป ใหเวบ็ บราวเซอรใ นฝงไคลเอนต (Client)
1.2 ความสามารถของภาษา PHP PHP เปน ภาษาสครปิ ตท ่ีมกี ารประมวลผลและแปลคาํ สง่ั ประเภทเซิรฟเวอรไซดสคริปต มีรูปแบบ
ในการเขียนคําส่ัง (Statement) การทาํ งานคลายกบั ภาษา Perl หรือภาษา C และสามารถทํางานรวมกบั ภาษา HTML ไดเ ปนอยางดี ความสามารถของภาษา PHP มรี ายละเอยี ด ดงั ตอไปนี้
2 บทที่ 1 บทนาํ
1.2.1 เปนตัวแปลภาษาที่มีลักษณะ ทเี่ รียกวา โอเพน ซอรส (Open source) คือ ผูใชสามารถ ดาวนโหลดและตดิ ตง้ั บนเว็บเซิรฟเวอร (Web Server) ไดโดยไมเ สยี คา ใชจาย
1.2.2 เปน ภาษาสคริปตประเภทเซิรฟ เวอรไ ซดสคริปต มีการประมวลผลและแปลคาํ ส่ังในฝงของ เว็บเซิรฟเวอร แลวแปลงเปนเอกสารในรูปแบบของภาษา HTML แลวสงผลลัพธที่ไดกลับไปใหเว็บ บราวเซอรในฝง ไคลเอนต
1.2.3 สามารถทํางานบนระบบปฏิบัติการ (Operating System) ท่หี ลากหลาย เชน Unix, MS- Windows, Mac OS หรือ Risc OS อยางมีประสิทธิภาพ
1.2.4 สามารถทํางานรวมกับเว็บเซิรฟเวอร เชน Personal Web Server (PWS), Apache, OmniHttpd และ Internet Information Service (IIS) เปนตน
1.2.5 สามารถเขียนโปรแกรมเชิงวตั ถุ (Object Oriented Programming) ได 1.2.6 สามารถทํางานรวมกับโปรแกรมระบบจัดการฐานขอมูลที่หลากหลาย เชน Oracle, MySQL, FilePro, Solid, FrontBase, mSQL และ MS SQL Server เปน ตน 1.2.7 สามารถติดตอและทาํ งานรว มกบั โปรโตคอล (Protocol) ชนดิ ตา งๆ ได เชน LDAP, IMAP, SNMP, POP3 และ HTTP (Hypertext Transfer Protocol) เปนตน
1.3 ประวตั ิความเปน มาของภาษา PHP
Rasmus Lerdorf Zeev Suraski Andi Gutmans
ภาพท่ี 1.1 ผรู วมพฒั นา PHP
ท่มี า: Rasmus. (2011)., Markbuchner. (2010). และ Peter Judge. (2010).
ภาษา PHP ถกู สรางขน้ึ ในป ค.ศ.1994 โดย Rasmus Lerdorf เปนผูเริ่มตนพฒั นา จุดเริ่มตนมา จากความตอ งการที่จะบันทกึ ขอมลู ผูทเ่ี ขา มาเยี่ยมชมเว็บไซตสวนตัวท่สี รางขึ้น โดยแนวคิดคอื การเขียน โปรแกรมดวยภาษา C แตตองการแยกสวนท่ีเปนภาษา HTML ออกจากภาษา C และเปนเหตุผลสําคัญ ทําใหส รา งโคด (Code) ของภาษา HTML ข้นึ มาใหม และต้ังช่ือวา Personal Home Page (PHP-Tools)
ปรญิ ญา นอ ยดอนไพร || การเขียนโปรแกรมบนเวบ็ ดวย PHP รว มกับฐานขอมูล MySQL
บทที่ 1 บทนํา 3
หลังจากพัฒนาภาษา PHP ข้ึนมาแลว ก็เริ่มแจกจายใหบุคคลทั่วไปใชงาน แตในชวงแรกภาษา PHP ยังไมมคี วามสามารถมากนัก ตอ มาในป ค.ศ.1995 มกี ารพัฒนาเพม่ิ ขดี ความสามารถใหกับภาษา PHP ใหส ามารถรบั ขอมลู ที่สง มาจากฟอรม (Form) ของภาษา HTML รวมทั้งสามารถติดตอกับฐานขอมูล MySQL ไดอกี ดวย
ในป ค.ศ.1997 ไดเปดใหผูสนใจเขา รวมพัฒนาภาษา PHP และไดผูรวมพัฒนาเพมิ่ อีก 2 คน คอื Zeev Suraski และ Andi Gutmans ไดชวยกนั ปรับปรุงและพัฒนาโคด ข้นึ มาใหมใหดขี ้ึนในหลายๆ ดาน ทั้งแกไขขอบกพรอง เพ่ิมประสิทธิภาพ และเพิ่มฟงกชัน (Function) ใหมๆ มากขึ้น และสามารถเขียน โปรแกรมเชิงวัตถุท่ีสมบูรณแบบ สามารถทํางานรวมกับเว็บเซิรฟเวอร บนระบบปฏิบัติการหลายชนิด จนเปนท่นี ิยมในปจจุบัน และเปลี่ยนช่ือใหมจากเดมิ Personal Home Page (PHP-Tools) เปน PHP Hypertext Preprocessor
ปจจุบันภาษา PHP ไดผานการพัฒนามาหลายเวอรชัน (Version) มีเว็บไซตเพื่อใหผูใชหรือ ผูพัฒนาเว็บไซตสามารถเขาไปดาวนโหลดโปรแกรมเวอรชันลาสุด รวมทั้งคนหาขอมูล วิธีการใชงาน ฟง กชนั และสนทนากันระหวางผูใชด ว ยกนั เว็บไซตตงั้ อยทู ่ี //php.net
1.4 หลกั การทาํ งานของภาษา PHP ภาษา PHP นัน้ ทาํ งานอยูในฝงเว็บเซริ ฟ เวอร จะไมสามารถเห็นสคริปตของภาษา PHP ที่เคร่ือง
คอมพิวเตอรในฝงไคลเอ็นท เพราะระหวางที่ใชงานเว็บบราวเซอรเรียกชมเว็บไซตน้ัน ในฝงของ เว็บเซิรฟเวอร จะทําการประมวลผลภาษา PHP และสงผลลัพธที่ได เปนภาษา HTML หลังจากนั้นจะสง HTML ทีไ่ ดจ ากการประมวลผลแลวนั้นมายังเว็บบราวเซอรของไคลเอ็นท แลวแสดงผลใหเห็นเปนรูปราง ของเว็บไซต และเมอื่ ดูซอรสโคด (Source Code) ในฝงไคลเอน็ ท จะเห็นเฉพาะ HTML tags ของภาษา HTML เพียงอยางเดียว ไมเห็นสคริปต PHP สามารถสรุปขนั้ ตอนและหลักการทํางานระหวางไคลเอ็นท และเว็บเซิรฟเวอร ไดดงั ตอ ไปนี้
1.4.1 เว็บเซิรฟเวอร คือ โปรแกรมท่ีอยูและทํางานบนเคร่ืองฝงเซิรฟเวอร ทําหนาที่ในการรับ คาํ สั่งจากการรองขอของไคลเอ็นท (โดยผูใชจะเรียกชมหนาเว็บเพจไดโ ดยใชโปรโตคอล HTTP ผานทาง เว็บบราวเซอร) และประมวลผลการทํางานจากการรองขอดังกลาว แลวสงขอมูลกลับไปยังเครื่องของ ไคลเอ็นทท รี่ อ งขอ โดยสรปุ คอื เวบ็ เซิรฟ เวอรจ ะคอยใหบ รกิ ารแก ไคลเอ็นท ทีร่ องขอขอ มลู เขามาโดยผาน เว็บบราวเซอร หรือ จากการรองขอผานโปรโตคอล HTTP โดยเว็บเพจท่ีเขียนก็สามารถเขียนไดหลาย ภาษา หลายรปู แบบ การเขยี นสครปิ ต PHP ระบบจะสามารถทาํ งานไดน้ันจาํ เปนตอ งมเี ว็บเซริ ฟเวอร เปน ตัวเรียกใชงาน Engine ของภาษา PHP ดังนั้นถาตองการใหคอมพิวเตอรสามารถประมวลผลและ แปลภาษา PHP ไดน้ัน จําเปนตองมีเว็บเซิรฟเวอรหรือกรณีศึกษาน้ีสามารถจําลองเคร่ืองคอมพิวเตอร ธรรมดาใหทําหนา ทเ่ี ปนเวบ็ เซริ ฟ เวอร (วิธกี ารตดิ ตง้ั สามารถศึกษาเพ่ิมเติมไดใ นภาคผนวก) รวมถึงรูปแบบ
ปรญิ ญา นอ ยดอนไพร || การเขียนโปรแกรมบนเวบ็ ดว ย PHP รวมกับฐานขอมูล MySQL
4 บทที่ 1 บทนาํ
และวิธีการ เขาถงึ ขอ มลู จะเรียกใชผานบริการจากโปรโตคอล HTTP เพื่อใหผูใชสามารถอานขอมลู ภาพ เสียง หรือขอ มูลอ่นื ๆ ตามตอ งการ
1.4.2 หลักการทํางานของเว็บเซิรฟเวอร มีลักษณะเชนเดียวกันกับบริการอ่ืนๆ บนระบบ อินเทอรเน็ต (Internet) คือ อยูในรูปแบบไคลเอ็นท-เซิรฟเวอร (Client-Server) โดยมีโปรแกรมเว็บ ไคลเอ็นท (Web Client) ทําหนาท่ีเปนผูรองขอบริการ และมโี ปรแกรมเว็บเซริ ฟเวอร ทําหนาที่เปนผู ใหบริการ โปรแกรมเว็บไคลเอ็นท ก็คือโปรแกรมเว็บบราวเซอรในเคร่ืองของผูใช สําหรับโปรแกรมเว็บ เซริ ฟเวอรน้นั จะถกู ติดต้ังไวใ นเครอื่ งของผูใหบริการเว็บไซต (มกั เรียกเคร่ืองคอมพิวเตอรทีต่ ิดต้ังโปรแกรม เว็บเซิรฟเวอรเพ่ือใหบริการวา "เว็บเซิรฟเวอร") การติดตอระหวางโปรแกรมเว็บบราวเซอรกับโปรแกรม เว็บเซริ ฟ เวอรจะกระทําผานโปรโตคอล HTTP ดังภาพที่ 1.2
รองขอบรกิ าร
โปรโตคอล HTTP
เวบ็ ไคลเอ็นท ใหบ รกิ าร เวบ็ เซริ ฟเวอร
ภาพท่ี 1.2 รูปแบบการติดตอสอ่ื สารระหวางเว็บไคลเอน็ ทและเว็บเซิรฟเวอรผา นโปรโตคอล HTTP
1.4.3 กลไกการทํางานเม่ือรองขอเว็บเพจธรรมดา โดยปกติจะมีนามสกุลของเอกสารเปน .htm หรอื .html น้ัน เมือ่ ใชเว็บไคลเอน็ ท เปดดูหรือเรียกดูเว็บเพจใด เว็บเซริ ฟเวอรก็จะสงเว็บเพจนั้นกลับมา ยงั เวบ็ ไคลเอ็นท จากน้ันเว็บไคลเอ็นทจ ะแสดงผลตามคําสง่ั ภาษา HTML ทอี่ ยใู นเอกสารนนั้ ๆ
รองขอเว็บเพจ
เวบ็ ไคลเอ็นท สง เวบ็ เพจท่รี องขอ เว็บเซิรฟ เวอร
ภาพที่ 1.3 รูปแบบการติดตอสื่อสารระหวางเว็บไคลเอ็นทและเว็บเซิรฟเวอรเพ่ือเรยี กเว็บเพจธรรมดา
จะเห็นไดวาเว็บเพจ จากภาพที่ 1.3 เปนเว็บเพจแบบคงที่ กลาวคือผูใชจะพบกับเว็บเพจหนาตา เดิมๆ ทุกครั้ง จนกวาผูดูแลเว็บจะทําการปรับปรุงเว็บเพจนั้นใหม ภาษา HTML เปนภาษาท่ีใชอธิบาย หนาตาของเว็บเพจ (ภาษา HTML จัดเปนภาษาในกลุมที่เรียกวา page description language) หรือ กลาวอีกนัยหน่ึงคือ ภาษา HTML สามารถกําหนดใหเว็บเพจมหี นาตาอยางท่ตี องการได ในปจจุบันมีการ พฒั นาโปรแกรมท่ีใชในการจดั การเวบ็ เพจ ใหมีความนาสนใจมากยิง่ ข้นึ
ปรญิ ญา นอ ยดอนไพร || การเขยี นโปรแกรมบนเว็บดว ย PHP รวมกบั ฐานขอ มลู MySQL
บทที่ 1 บทนาํ 5
1.4.4 กลไกการทํางานเม่ือรองขอเว็บเพจที่ใชภาษา PHP จะมีรูปแบบการประมวลผลและ แสดงผลเปน แบบไดนามกิ เวบ็ เพจ สามารถติดตอกับผูใช ฐานขอ มลู คาํ นวณ และประมวลผลตามเงอื่ นไข ตางๆ ได ลักษณะการประมวลผล ดงั ภาพท่ี 1.4
เว็บไคลเอน็ ท รองขอไฟล PHP เรยี กใช Engine ของภาษา PHP เพือ่ ประมวลผลไฟล PHP สงผลลพั ธเ ปน HTML กลบั ไปยังเว็บไคลเอน็ ท เวบ็ เซริ ฟ เวอร ตดิ ตอ กับฐานขอ มลู (ถามี)
ฐานขอมลู
ภาพท่ี 1.4 การรองขอการใชง านจากเว็บไคลเอน็ ทไปยงั เว็บเซิรฟ เวอรทีไ่ ดต ดิ ต้ัง Engine ของภาษา PHP