การใช้ PHP ติดต่อฐานข้อมูล Internet for Education อาจารย์ชนิดา เรืองศิริวัฒนกุล หลักสูตรสาขาวิชาเทคโนโลยีสารสนเทศ การใช้ PHP ติดต่อฐานข้อมูล
MySQL DATABASE FUNCTION MySQL เป็นระบบฐานข้อมูลที่ใช้งานร่วมกับ PHP หาใช้ได้ง่ายระบบมีประสิทธิ์ภาพสูงและเป็นแบบ RDBMS (ralational database management system)
ระบบฐานข้อมูลที่ PHP สามารถเชื่อมต่อได้ Oracle Sybase mSQL MySQL Solid ODBC PostgreSQL Adabas D FilePro Velocis Informix dBase Unix dbm
ฟังก์ชัน PHP สำหรับติดต่อฐานข้อมูล MySQL mysql_connect() เชื่อมต่อเซิร์ฟเวอร์ฐานข้อมูล ซึ่งต้องใช้ ชื่อดาต้าเบสเซิร์ฟเวอร์, ชื่อผู้ใช้ และรหัสผ่าน mysql_select_db() เลือกฐานข้อมูล mysql_query() ส่งคำสั่ง sql ไปยังฐานข้อมูล sql_fetch_array() ดึงข้อมูล
mysql_connect ฟังก์ชันในการเชื่อมต่อเซิร์ฟเวอร์ รูปแบบ ตัวอย่าง $host =“localhost”; $username=“root”; $password=“1234”; @mysql_connect($host,$username,$password) or die (“MySql connect fail”) ;
mysql_connect เครื่องหมาย @ หมายถึงให้ฟังก์ชันนี้แสดงข้อความแจ้งว่ามีการทำงานผิดพลาด or die() หมายถึง หากเกิดปัญหาในการเชื่อมต่อ ให้พิมพ์ข้อความที่อยู่ในวงเล็บและออกจากสคริปต์โดยไม่มีการดำเนินการใด ๆ เพิ่มเติม
mysql_select_db() หลังจากเชื่อมต่อดาต้าเบสเซิร์ฟเวอร์แล้ว จะต้องทำการเลือกฐานข้อมูลใช้งาน รูปแบบ mysql_select_db(ชื่อฐานข้อมูล); ตัวอย่าง $db =“e_commerce”; @mysql_select_db($db) or die (“MySql select database fail”) ;
mysql_query() ฟังก์ชันส่งคำสั่ง SQL ไปที่ฐานข้อมูล รูปแบบ ตัวอย่าง $sql =“select * from quest order by ‘date’ DESC”; $result = mysql_query($sql) or die (mysql_error()) ; ฟังก์ชัน mysql_error() แสดงความผิดพลาดในการส่งคำสั่ง SQL เช่น เขียนผิดไวยากรณ์ของภาษา SQL หรือชื่อตาราง หรือชื่อฟิลด์ผิด
mysql_fetch_array() ฟังก์ชันการดึงข้อมูลทีละแถวของตาราง รูปแบบ ตัวอย่าง $row=mysql_fetch_array($result); ตัวแปร $row เป็นอาร์เรย์ที่เก็บข้อมูล การแสดงข้อมูลในฟิลด์ “id” ให้เขียนว่า echo $row[“id”] ; หรือถ้าต้องการดึงข้อมูลพร้อมกันหลายฟิลด์ echo “$row[id], $row[name], $row[date]”;
mysql_num_rows () ฟังก์ชันนับจำนวนแถวของข้อมูลในตาราง รูปแบบ ตัวอย่าง $num_rows = mysql_num_rows($result); สามารถใช้ตัวแปร $num_rows เป็นตัวแปรที่ใช้ตรวจสอบการดึงข้อมูลจากอาร์เรย์เพื่อใช้แสดงผลข้อมูลในตาราง
mysql_num_rows () ตัวอย่าง for($i=0; $i<$num_rows; $i++) { $row=mysql_fetch_array($result); echo "แสดงข้อมูล ".$row[“name"] ; echo "<br>" ; }
การเขียนโปรแกรมแสดงผล มีขั้นตอนดังนี้ 1. เริ่มติดต่อฐานข้อมูล 2. เขียนคำสั่ง SQL และ query ข้อมูล 3. แสดงข้อมูล 4. ปิดการติดต่อฐานข้อมูล
ตัวอย่างการติดต่อฐานข้อมูล <?php $host = “localhost”; // กำหนดชื่อ host $user = “”; // กำหนดชื่อล็อกอิน $pass = “”; // กำหนดรหัสผ่าน $db=“project”; // กำหนดชื่อดาต้าเบส @mysql_connect($host, $user, $pass) or die (“ติดต่อ serverไม่ได้”); @mysql_select_db($db) or die (“MySql select database fail”) ; $sql = “select * from user”; // กำหนดคำสั่ง SQL เพื่อแสดงข้อมูล $result = mysql_query($sql) or die (mysql_error()) ; ; // query คำสั่ง SQL $row=mysql_fetch_array($result); $num_rows = mysql_num_rows($result); // ตัวแปรจำนวนเรคคอร์ด echo “แสดงชื่อสมาชิก” . $row[“name”] ; echo “ตาราง user มีจำนวนเรคคอร์ด = ”. $num_rows; ?>
Case Study1 : Member
ออกแบบฐานข้อมูล ตาราง member username ชื่อเข้าใช้ของสมาชิก password รหัสผ่านของสมาชิก name ชื่อ-สกุลสมาชิก address ที่อยู่ tel เบอร์โทรศัพท์ email อีเมล์ของสมาชิก comment ข้อเสนอแนะ
Member ประกอบด้วยไฟล์อะไรบ้าง login.php แสดงแบบฟอร์มการล็อกอิน checklogin.php ตรวจสอบผลการล็อกอิน register.html แสดงฟอร์มการสมัครสมาชิกใหม่ checkregister.php รายงานผลการสมัครสมาชิกใหม่