Transcript ODBC

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