Upload
kulkanok-issara
View
214
Download
2
Embed Size (px)
DESCRIPTION
course new
Citation preview
ใบความรท 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
การเขยน 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 ยกเวนฟลดรหสพนกงานซงไมอนญาตใหแกไข โดย
การท างานในสวนทดงขอมลของพนกงานขนมาแสดงนจะใชค าสง SQL คอ select*testable where id = $id_val ซงเปนการดงทกเรคคอรดจากตาราง testtble โดยมเงอนไขวาใหดงเฉพาะเรคคอรดทมคาของฟลด id เทากบคาทเกบไวในตวแปร $id_val เทานน
การลบเรคคอรดในตาราง ขนตอนในการลบเรคคอรดในตารางจะเรมจากการสรางแบบฟอรมใหผใชกรอกรหสพนกงาน
ทตองการลบออกไปจากตารางและท าการคลกทปม Submit โปรแกรมจะท าการลบเรคคอรดทตองการให ถาท าการคลกทลงค ลบขอมล จะท าการเลอกโปรแกรมตอไปนท างาน
สรป ในทางปฏบตการเขาถงขอมลใดๆ จะไมอนญาตใหผใชงานทงไปมสทธเขาถงได เชน อนญาตใหใชงานโปรแกรม PhpMyAdmin เนองจากผใชงานทวไปอาจจะเขาไปท าการลบ แกไข หรอท าการใดๆทอาจจะสงผลเสยหายตอขอมล โดยเฉพาะอยางยงขอมลทเปนความลบองคกร ดงนนเราจงจะตองท าการเขยนโปรแกรมขนมาเพอใหสามารถเขาถงขอมลในฐานขอมลได ซงอาจจะเรยกโปรแกรมในลกษณะเชนนวา Front-End โปรแกรมภาษา PHP มค าสงทไดจดเตรยมใหสามารถเขาถงขอมลในฐานขอมลไวแลว เชน ค าสงในการเชอมตอ และปดการเชอมตอฐานขอมล ค าสงในการจดการฐานขอมล MySQL ซงท าใหสามารถเขาถงขอมล ทง เพม ลบ และแกไขเรคคอรดตางๆ ภายในตารางฐานขอมลได