3
ใบความรู้ที 13 การเขียน PHP จัดการ MySQL การเขียน PHP เชื่อมต่อและปิดการเชื่อมต่อ MySQL เราทราบแล้วว่าก่อนจะเข้าใช้ฐานข้อมูล MySQL ได้ก็จะต้องรู้ชื่อผู้ใช้ (User name) และ รหัสผ่าน (Password) เสียก่อน ดังนั้นการที่เราเข้าถึงข้อมูล MySQL ได้โดยโปรแกรมภาษา PHP ก็ จะต้องเรียนรู้คาสั่งใช้เชื่อมต่อ MySQL และหลังจากเข้าถึงถึง MySQL เสร็จแล้วเราก็ต้องทาการปิด การเชื่อมต่อ MySQL Host name เป็นการระบุชื่อโฮสต์ที่ใช้ User name เป็นการระบุผู้ใช้เพื่อเข้าไปใช้งาน MySQL Password เป็นการระบุ รหัสผ่านเพื่อเข้าไปใช้งา น MySQL คาสั่งปิดการเชื่อมต่อ MySQL นอกจากนั้น ในที่นี้จะแนะนาคาสั่งเพื่อใช้ในการแจ้งความผิดพลาดที่เกิดขึ้นจากการเชื่อมต่อ MySQL คือ คาสั่ง mysql_error() โดยจะบอกเหตุผลว่ามีความผิดพลาดอะไรเกิดขึ้นจากการเชื่อมต่อ ดังนั้นเราสามารถนาคาสั่ง mysql_error() มาประยุกต์ใช้กับคาสั่ง พิจารราการใช้งานคาสั่งทั้งหมด จากโปรแกรมต่อไปนีการเขียน PHP เพื่อสร้างฐานข้อมูลและตาราง โดยปกติเราจะสร้างฐานข้อมูลและตารางจากโปรแกรม PhpMyAdmin (วิธีกรที่ได้อธิบายไว้ในบทที12) แต่เราก็สามารถเขียนโปรแกรมภาษา PHP เพื่อสร้างฐานข้อมูลและตางได้เช่นเดียวกัน คาสั่งทีสาคัญที่ใช้ในการจัดการคือคาสั่ง mysql_query() โดยคาสั่งนี้จะรับคาสั่ง SQL แล้วนาไปประมวลผล ต่อไปรูปแบบในการใช้งานเป็นดังนีผลลัพธ์ของค่าคาสั่งนี้จะส่งค่าจริง (True) เมื่อสามารถทาคาสั่ง SQL ได้ แต่จะส่งค่าเป็นเท็จ (False) เมื่อไม่สามารถทาคาสั่ง SQL ได้ เช่นอาจจะเนื่องมาจากการพิมพ์คาสั่งที่ผิด เป็นต้น พิจารณา โปรแกรมต่อไปนี้โดยสร้างจากการสร้างฐานข้อมูลชื่อว่า testdb และสร้างตารางชื่อว่า testable โปรแกรมนี้เป็นการสร้างฐานข้อมูลชื่อว่า testdb โดยใช้คาสั่ง SQL คือ Create Datae Database testdb;” หลังจากนั้นก็จะทาการสร้างตารางชื่อว่า testable ภายในฐานข้อมูลนี้ โดยใช้คาสั่ง Create Table testable (id Varchar (3). Name Varchar (25) Age lnt(2) Primary Key (id));” ในที่นี้จะเก็บไฟล์ฐาน ข้อมูลไว้ทีC: MySQLdata

course new

Embed Size (px)

DESCRIPTION

course new

Citation preview

Page 1: course new

ใบความรท 13 การเขยน PHP จดการ MySQL

การเขยน PHP เชอมตอและปดการเชอมตอ MySQL

เราทราบแลววากอนจะเขาใชฐานขอมล MySQL ไดกจะตองรชอผใช (User name) และรหสผาน (Password) เสยกอน ดงนนการทเราเขาถงขอมล MySQL ไดโดยโปรแกรมภาษา PHP กจะตองเรยนรค าสงใชเชอมตอ MySQL และหลงจากเขาถงถง MySQL เสรจแลวเรากตองท าการปดการเชอมตอ MySQL

Host name เปนการระบชอโฮสตทใช User name เปนการระบผใชเพอเขาไปใชงาน MySQL

Password เปนการระบ รหสผานเพอเขาไปใชงา น MySQL

ค าสงปดการเชอมตอ MySQL นอกจากนน ในทนจะแนะน าค าสงเพอใชในการแจงความผดพลาดทเกดขนจากการเชอมตอ

MySQL คอ ค าสง mysql_error() โดยจะบอกเหตผลวามความผดพลาดอะไรเกดขนจากการเชอมตอ ดงนนเราสามารถน าค าสง mysql_error() มาประยกตใชกบค าสง พจารราการใชงานค าสงทงหมดจากโปรแกรมตอไปน

การเขยน PHP เพอสรางฐานขอมลและตาราง โดยปกตเราจะสรางฐานขอมลและตารางจากโปรแกรม PhpMyAdmin (วธกรทไดอธบายไวในบทท 12) แตเรากสามารถเขยนโปรแกรมภาษา PHP เพอสรางฐานขอมลและตางไดเชนเดยวกน ค าสงทส าคญทใชในการจดการคอค าสง mysql_query() โดยค าสงนจะรบค าสง SQL แลวน าไปประมวลผลตอไปรปแบบในการใชงานเปนดงน ผลลพธของคาค าสงนจะสงคาจรง (True) เมอสามารถท าค าสง SQL ได แตจะสงคาเปนเทจ (False) เมอไมสามารถท าค าสง SQL ได เชนอาจจะเนองมาจากการพมพค าสงทผด เปนตน พจารณาโปรแกรมตอไปนโดยสรางจากการสรางฐานขอมลชอวา testdb และสรางตารางชอวา testable โปรแกรมนเปนการสรางฐานขอมลชอวา testdb โดยใชค าสง SQL คอ Create Datae Database testdb;” หลงจากนนกจะท าการสรางตารางชอวา testable ภายในฐานขอมลน โดยใชค าสง Create Table testable (id Varchar (3). Name Varchar (25) Age lnt(2) Primary Key (id));” ในทนจะเกบไฟลฐาน ขอมลไวท C: MySQLdata

Page 2: course new

การเขยน PHP เพอเขาถงขอมลในตาราง ฟงกชนทส าคญในการเขาถงขอมลในตาราง คอ การเพม ลบ แกไข และการแสดงขอมล หรอการจดท ารายงาน ในทนจะใชฐานขอมล testdb และตาราง testtble ทสรางไวในหวขอทผานมา โปรแกรมจะเรมจากเวบหนาหลกทรวมลงคฟงกชนในการเขาถง ดงน การเพมเรคคอรดใหมลงในราง

ใหกรอกขอมลลงไปในชอง Text box หลงจากนนกท าการคลกทปม Submit โปรแกรมจะท าการเพมขอมลดงกลาวลงในตารางฐานขอมลให โดยเปนการเพมเรคคอรดใหมลงไปในตารางฐานขอมล ใชค าสง SQL คอ Insert into testtablde values($id, $name, $age);” ซงเปนการเพมเรคคอรดลงในตาราง testable โดยน าขอมลทเกบไวในตวแปร $id, $nameและ$age เพมลงไปในฟลด id, nae และ age ตามล าดบ ผลลพธของโปรแกรม เราสามารถทดสอบวาโปรแกรมไดท าการเพมขอมลลงไปในตารางบานขอมล หรอไมโดยการเปดดดวยโปรแกรม PhpmyAdmin

การแสดงเรคคอรดในตาราง

เราสามารถเขยนโปรแกรมภาษา PHP เพอแสดงวามขอมลอะไรบางอยในตาราง โดยไมตองใชโปรแกรม PhpMyAdmin ถาเราคลกทลงค จดท ารายงาน จะท าการเรยกโปรแกรมทใชแสดงขอมลเรคคอรดทอยภายในตาราง โดยการเขยนโปรแกรมเราจะใชค าสง mysql_feetch_array() รปแบบค าสงนเปน

ซงค าสงนท าการเลอกดขอมล โดยสงคนคาเปนขอมลชนดอารเรยซงม index เปนฟลดตางๆ ของเรคคอรด และในการดงขอมลเราจะใชวธการวนรอบดงขอมลออกมาทละเรคคอรด ในทนจะใชค าสง while ดงตวอยางเราจะแสดงเรคคอรดทงหมดในตาราง โคดโปรแกรมทงหมด

การแกไขเรคคอรดในตาราง

ในการแกไขเรคคอรดในตารางจะมขนตอนยงยากกวาการเพมเรคคอรด และการแสดงเรคคอรดดงทเคยกลาวมา ขนตอนเรมแรกจะตองเลอกเรคคอรดทตองการแกไขกอน โดยแสดงรายละเอยดในแตละฟลดในชอ Text box เพอใหสามารถท าการแกไขได และหลงจากแกไขแลวกจะตองท าการคลกทปม Submit เพอสงขอมลไปแกไขภายในตารางฐานขอมล

หลงจากกรอกรหสพนกงาน และคลกทปม Submit แลวจะแสดงรายละเอยดของพนกงานทตองการแกไขขนมาทกฟลดบนชอง Text box ยกเวนฟลดรหสพนกงานซงไมอนญาตใหแกไข โดย

Page 3: course new

การท างานในสวนทดงขอมลของพนกงานขนมาแสดงนจะใชค าสง SQL คอ select*testable where id = $id_val ซงเปนการดงทกเรคคอรดจากตาราง testtble โดยมเงอนไขวาใหดงเฉพาะเรคคอรดทมคาของฟลด id เทากบคาทเกบไวในตวแปร $id_val เทานน

การลบเรคคอรดในตาราง ขนตอนในการลบเรคคอรดในตารางจะเรมจากการสรางแบบฟอรมใหผใชกรอกรหสพนกงาน

ทตองการลบออกไปจากตารางและท าการคลกทปม Submit โปรแกรมจะท าการลบเรคคอรดทตองการให ถาท าการคลกทลงค ลบขอมล จะท าการเลอกโปรแกรมตอไปนท างาน

สรป ในทางปฏบตการเขาถงขอมลใดๆ จะไมอนญาตใหผใชงานทงไปมสทธเขาถงได เชน อนญาตใหใชงานโปรแกรม PhpMyAdmin เนองจากผใชงานทวไปอาจจะเขาไปท าการลบ แกไข หรอท าการใดๆทอาจจะสงผลเสยหายตอขอมล โดยเฉพาะอยางยงขอมลทเปนความลบองคกร ดงนนเราจงจะตองท าการเขยนโปรแกรมขนมาเพอใหสามารถเขาถงขอมลในฐานขอมลได ซงอาจจะเรยกโปรแกรมในลกษณะเชนนวา Front-End โปรแกรมภาษา PHP มค าสงทไดจดเตรยมใหสามารถเขาถงขอมลในฐานขอมลไวแลว เชน ค าสงในการเชอมตอ และปดการเชอมตอฐานขอมล ค าสงในการจดการฐานขอมล MySQL ซงท าใหสามารถเขาถงขอมล ทง เพม ลบ และแกไขเรคคอรดตางๆ ภายในตารางฐานขอมลได