งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

สำนักวิชาเทคโนโลยีสารสนเทศและการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "สำนักวิชาเทคโนโลยีสารสนเทศและการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา"— ใบสำเนางานนำเสนอ:

1 สำนักวิชาเทคโนโลยีสารสนเทศและการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา
PHP with MySQL กนกวรรธน์ เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศและการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา

2 เนื้อหา ขั้นตอนในการเรียกใช้ฐานข้อมูลจากเว็บ
ฟังก์ชันอื่นๆ ที่เกี่ยวข้องกับการจัดการฐานข้อมูล

3 ขั้นตอนในการเรียกใช้ฐานข้อมูลจากเว็บ
การเชื่อมต่อกับฐานข้อมูล การเรียกใช้ฐานข้อมูลผ่านเว็บ การใช้ภาษา SQL กับฐานข้อมูล MySQL การยกเลิกการเชื่อมต่อกับฐานข้อมูล

4 ขั้นตอนในการเรียกใช้ฐานข้อมูลจากเว็บ
ในการเขียน PHP เพื่อเรียกใช้ฐานข้อมูลมีขั้นตอนต่างๆ ดังต่อไปนี้ การเชื่อมต่อกับฐานข้อมูล การเรียกใช้ฐานข้อมูลผ่านเว็บ การใช้ภาษา SQL กับฐานข้อมูล MySQL การยกเลิกการเชื่อมต่อกับฐานข้อมูล

5 การเชื่อมต่อกับฐานข้อมูล
การเชื่อมต่อกับฐานข้อมูล MySQL ในภาษา PHP สามารถใช้ 2 ฟังก์ชัน ต่อไปนี้ คือ mysql_connect() mysql_pconnect()

6 mysql_connect() รูปแบบ int mysql_connect(localhost, username, password) localhost ชื่อ database server หรือ IP Address ของ database server username ชื่อผู้ใช้ฐานข้อมูล password รหัสผ่าน ทำการเชื่อมต่อฐานข้อมูลโดยต้องระบุ database server, ชื่อผู้ใช้ และรหัสผู้ใช้ เมื่อใช้งานเสร็จต้อง ต้องยกเลิกการเชื่อมต่อด้วยฟังก์ชัน mysql_close()

7 mysql_pconnect() รูปแบบ int mysql_pconnect(localhost, username, password) localhost ชื่อ database server หรือ IP Address ของ database server username ชื่อผู้ใช้ฐานข้อมูล password รหัสผ่าน ทำการเชื่อมต่อฐานข้อมูลโดยต้องระบุ database server, ชื่อผู้ใช้ และรหัสผู้ใช้ เมื่อใช้งานเสร็จต้อง จะยกเลิกการเชื่อมต่อโดยอัตโนมัติ

8 connect_inc.php หมายเหตุ :
define("DB_SERVER", "localhost"); // database server define("USERNAME", "root"); // username define("PASSWORD", ""); // no password define("CURRENT_DB", “ict"); // current database $db = mysql_pconnect( DB_SERVER, USERNAME, PASSWORD); mysql_query("SET NAMES TIS620"); // เพื่อให้รองรับภาษาไทย ?> หมายเหตุ : define("CURRENT_DB", “ict"); จะขึ้นอยู่กับว่านิสิตตั้งชื่อ หรือ กำหนดให้ใช้งานฐานข้อมูลตัวใด ในที่นี้ สมมติให้ใช้ฐานข้อมูลชื่อ ict SET NAMES TIS620 กรณีที่เรียกใช้งานฐานข้อมูล ภาษาไทยแล้วแสดงเป็น ?????

9 การเรียกใช้ฐานข้อมูลผ่านเว็บ
รูปแบบ int mysql_select_db(string dbname) dbname ชื่อของฐานข้อมูลโดยเราต้องใช้คำสั่ง mysql_connect() ก่อนถึงจะสามารถใช้คำสั่งนี้ได้ ทำการเรียกใช้งานฐานข้อมูลผ่านเว็บ โดยเราต้องกำหนดชื่อของฐานข้อมูลที่ต้องการเป็น argument ที่ส่งไป

10 การใช้ภาษา SQL มาใช้กับฐานข้อมูล MySQL
รูปแบบ int mysql_query(string query, [int db_connect]) query คิวรีที่เรียกใช้ฐานข้อมูล db_connect ตัวแปรที่ใช้เชื่อมต่อกับฐานข้อมูลที่ได้จาก mysql_connect() เรียกใช้งาน SQL ที่เราต้องการ แต่ต้องใช้ร่วมกับ mysql_select_db()

11 การใช้ภาษา SQL มาใช้กับฐานข้อมูล MySQL
รูปแบบ int mysql_db_query(string dbname, string query, [int db_connect]) dbname ชื่อของฐานข้อมูล query คิวรีที่เรียกใช้ฐานข้อมูล db_connect ตัวแปรที่ใช้เชื่อมต่อกับฐานข้อมูลที่ได้จาก mysql_connect() เรียกใช้งาน SQL ที่เราต้องการ โดยไม่ต้องใช้ร่วมกับ mysql_select_db()

12 mysql_db_query() เมื่อเราต้องการประมวลผล คำสั่ง SQL ที่เตรียมเอาไว้
require(“connect_inc.php”); . . . $sql_login = "SELECT * FROM login WHERE USERNAME='" . $username . "' AND PASSWORD='" . $password . "'"; $login_result = mysql_db_query(CURRENT_DB, $sql_login); $login_rows = mysql_fetch_array($login_result); $user = $login_rows["USERNAME"]; เมื่อเราต้องการประมวลผล คำสั่ง SQL ที่เตรียมเอาไว้

13 การยกเลิกการเชื่อมต่อกับฐานข้อมูล
รูปแบบ int mysql_close(db_connect) db_connect ตัวแปรที่เก็บการเชื่อมต่อฐานข้อมูลด้วยคำสั่ง mysql_connect() ไว้ ทำการยกเลิกการเชื่อมต่อกับฐานข้อมูลที่เราเชื่อมต่อผ่านคำสั่ง mysql_connect()

14 ชื่อตาราง รายละเอียดตาราง
DESIGN: Database ชื่อตาราง รายละเอียดตาราง AUTHOR ข้อมูลผู้แต่ง BOOK ข้อมูลหนังสือ CUSTOMER ข้อมูลลูกค้า LOGIN ข้อมูลผู้ใช้งานระบบ ORDERS ข้อมูลการสั่งซื้อหนังสือ ORDER_DETAIL ข้อมูลรายละเอียดการสั่งซื้อหนังสือ PUBLISHER ข้อมูลสำนักพิมพ์

15 สร้างฐานข้อมูล ให้นิสิตสร้างฐานข้อมูลตาม SECTION ของตัวเอง คือ 171 หรือ 172 โดยที่ตัวอย่าง ผู้สอนจะใช้ชื่อฐานข้อมูลเป็น ICT โดยสร้างฐานข้อมูลให้ support ภาษาไทย โดยไปกำหนดที่ tis620_thai_ci

16 DESIGN: Relation PUBLISHER_ID PUBLISHER_NAME AUTHOR_ID AUTHOR_NAME
BOOK BOOK_ID BOOK_NAME PRICE AUTHOR_ID PUBLISHER_ID STOCK CUSTOMER PK CUST_ID CUST_NAME BIRTHDATE CUST_ADDR FK ORDERS ORDER_ID CUSTOMER_ID ORDER_DATE NON-KEY ORDER_DETAIL LOGIN ORDER_ID BOOK_ID UNIT PRICE USERNAME PASSWORD

17 TABLE: LOGIN ชื่อฟิลด์ ชนิด คำอธิบาย ชื่อผู้ใช้ รหัสผ่าน USERNAME (PK)
VARCHAR(20) ชื่อผู้ใช้ PASSWORD VARCHAR(40) รหัสผ่าน

18 TABLE: LOGIN

19 TABLE: LOGIN

20 TABLE: LOGIN admin 1234 super 9999
USERNAME PASSWORD admin 1234 super 9999 การออกแบบ Login แบบนี้มีความปลอดภัยต่ำเนื่องจากรหัสผ่าน สามารถถูกเปิดอ่านได้โดยตรงจาก MySQL เสียงต่อการถูกเจาะระบบได้ การแก้ปัญหาเบื้องต้นคือการเข้ารหัส password ด้วยฟังก์ชันการเข้ารหัส เช่น sha1()

21 login.php <html>
<head><title>Login.php</title></head> <body onload="document.all.username.focus();"> <form action="check_login.php" method="post"> <table> <tr> <td>Username:</td> <td><input type="text" name="username"> </td> </tr> <tr> <td>Password:</td> <td><input type="password" name="passwd"></td> <tr> <td colspan="2"> <input type="submit" value="Login"> <input type="reset" value="Clear"> </td> </table> </form> </body> </html>

22 check_login.php <?php // login.php require_once("connect_inc.php");
$username = $_POST['username']; $password = $_POST['passwd']; $sql_login = "SELECT * FROM login WHERE USERNAME='" . $username . "' AND PASSWORD='" . $password . "'"; $login_result = mysql_db_query(CURRENT_DB, $sql_login); $login_rows = mysql_fetch_array($login_result); $user = $login_rows["USERNAME"]; if(isset($user)){ echo "<h1>LOGIN COMPLETE!!</h1>"; } else{ $URL = "login.php?err=1"; header("Location: $URL"); ?>

23 TABLE: AUTHOR ชื่อฟิลด์ ชนิด คำอธิบาย รหัสผู้แต่ง ชื่อผู้แต่ง
AUTHOR_ID (PK) SMALLINT (auto_increment) รหัสผู้แต่ง AUTHOR_NAME VARCHAR(100) ชื่อผู้แต่ง

24 TABLE: AUTHOR

25 TABLE: AUTHOR

26 TABLE: AUTHOR กิตติ ภักดีวัฒนะกุล ยุทธพล ระลึกมูล AUTHOR_ID
AUTHOR_NAME 1 กิตติ ภักดีวัฒนะกุล 2 ยุทธพล ระลึกมูล 3 Russell Norving 4 Peter Jackson

27 TABLE : BOOK ชื่อฟิลด์ ชนิด คำอธิบาย รหัสหนังสือ ชื่อหนังสือ
BOOK_ID (PK) SMALLINT (auto_increment) รหัสหนังสือ BOOK_NAME VARCHAR(100) ชื่อหนังสือ PRICE FLOAT ราคาต่อหน่วย STOCK สินค้าคงคลัง AUTHOR_ID รหัสผู้แต่ง PUBLISHER_ID รหัสสำนักพิมพ์

28 TABLE : BOOK

29 TABLE : BOOK

30 TABLE : BOOK การออกแบบฐานข้อมูล 1 PHP เบื้องต้น 350 100 2 280 3
BOOK_ID BOOK_NAME PRICE STOCK AUTHOR_ID PUBLISHER_ID 1 PHP เบื้องต้น 350 100 2 การออกแบบฐานข้อมูล 280 3 KING KONG 500 25 4 LORD OF THE RING 475 5 ARTIFICIAL INTELLIGENCE 1250 10

31 TABLE : CUSTOMER ชื่อฟิลด์ ชนิด คำอธิบาย รหัสลูกค้า ชื่อลูกค้า
CUST_ID (PK) SMALLINT (auto_increment) รหัสลูกค้า CUST_NAME VARCHAR(100) ชื่อลูกค้า BIRTHDATE DATE วันเดือนปีเกิดลูกค้า CUST_ADDR VARCHAR(255) ที่อยู่ของลูกค้า

32 TABLE : CUSTOMER

33 TABLE : CUSTOMER

34 TABLE : CUSTOMER อุทัย เซี่ยงเจ็น พรเทพ โรจนวสุ สุรางคนา ระวังยศ 1
CUST_ID CUST_NAME BIRTHDATE CUST_ADDR 1 อุทัย เซี่ยงเจ็น CHIANGMAI 2 พรเทพ โรจนวสุ LAMPANG 3 สุรางคนา ระวังยศ NAN 4 SOMKID JAIDEE 5 SOMSRI DEEJAI PHAYAO

35 TABLE : ORDERS ชื่อฟิลด์ ชนิด คำอธิบาย รหัสการสั่งซื้อ รหัสลูกค้า
ORDER_ID (PK) MEDIUMINT (auto_increment) รหัสการสั่งซื้อ CUST_ID VARCHAR(100) รหัสลูกค้า ORDER_DATE DATE วันเดือนปีที่สั่งซื้อ

36 TABLE : ORDERS

37 TABLE : ORDERS

38 TABLE : ORDERS 1 2009-01-15 2 4 3 5 2009-01-16 ORDER_ID CUST_ID
ORDER_DATE 1 2 4 3 5

39 TABLE : ORDER_DETAIL ชื่อฟิลด์ ชนิด คำอธิบาย รหัสการสั่งซื้อ
ORDER_ID (PK) MEDIUMINT รหัสการสั่งซื้อ BOOK_ID (PK) SMALLINT รหัสหนังสือ UNIT TINYINT จำนวนสินค้าที่สั่งซื้อ PRICE FLOAT ราคาต่อหน่วย

40 TABLE : ORDER_DETAIL

41 TABLE : ORDER_DETAIL

42 TABLE : ORDER_DETAIL 1 2 280 10 350 3 500 5 1250 4 475 ORDER_ID
BOOK_ID UNIT PRICE 1 2 280 10 350 3 500 5 1250 4 475

43 TABLE: PUBLISHER ชื่อฟิลด์ ชนิด คำอธิบาย รหัสสำนักพิมพ์ ชื่อสำนักพิมพ์
PUBLISHER_ID (PK) SMALLINT (auto_increment) รหัสสำนักพิมพ์ PUBLISHER_NAME VARCHAR(100) ชื่อสำนักพิมพ์

44 TABLE: PUBLISHER

45 TABLE: PUBLISHER

46 TABLE: PUBLISHER บริษัท เคทีพี คอมพ์ แอนด์ คอนซัลท์ จำกัด
PUBLISHER_ID PUSLISHER_NAME 1 บริษัท เคทีพี คอมพ์ แอนด์ คอนซัลท์ จำกัด 2 HOLLYWOOD PUBLISHING 3 PRENTICE HILL PUBLISHING 4 SAMS PUBLISHING

47 ฟังก์ชันอื่นๆ ที่เกี่ยวข้องกับการจัดการฐานข้อมูล
คำอธิบาย mysql_free_result() ใช้สำหรับคืนหน่วยความจำให้ระบบ mysql_create_db() ใช้สำหรับสร้างฐานข้อมูล mysql_drop_db() ใช้สำหรับลบฐานข้อมูล mysql_fetch_array() ใช้สำหรับดึงผลลัพธ์จากฐานข้อมูลไปเก็บไว้ในอาร์เรย์ mysql_fetch_row() ใช้สำหรับเลื่อนตำแหน่งของตัวชี้ข้อมูลไปยังเรคอร์ดถัดไป

48 ฟังก์ชันอื่นๆ ที่เกี่ยวข้องกับการจัดการฐานข้อมูล
คำอธิบาย mysql_insert_id() ใช้สำหรับเรียกดู PK กรณีที่เรากำหนดเป็นauto_increment ภายหลังจากการเพิ่มข้อมูล mysql_num_rows() ใช้สำหรับนับจำนวนเรคอร์ด (SELECT) mysql_affected_rows() ใช้สำหรับนับจำนวนเรคอร์ดที่มีการเปลี่ยนแปลงล่าสุด (INSERT, UPDATE, DELETE)

49 ฟังก์ชันอื่นๆ ที่เกี่ยวข้องกับการจัดการฐานข้อมูล
คำอธิบาย mysql_result() ใช้สำหรับแสดงผลลัพธ์ในฐานข้อมูล ตามแถว (record) และคอลัมน์(Field) ที่กำหนด mysql_fetch_object() ใช้สำหรับดึงค่าผลลัพธ์จากฐานข้อมูลไปไว้ใน object โดยที่เราจะสามารถระบุชื่อฟิลด์ได้เลย mysql_data_seek() ใช้สำหรับระบุตำแหน่งของเรคอร์ดที่ต้องการเริ่มต้น (เรคอร์ดแรก คือ 0 )

50 ฟังก์ชันอื่นๆ ที่เกี่ยวข้องกับการจัดการฐานข้อมูล
คำอธิบาย mysql_list_dbs() ใช้สำหรับคืนค่าตัวชี้ (handle) ของฐานข้อมูล ใช้ร่วมกับ mysql_num_rows() เพื่อแสดงจำนวนฐานข้อมูลทั้งหมด หรือใช้ร่วมกับ mysql_tablename() เพื่อแสดงชื่อของฐานข้อมูลที่เรากำหนด

51 ฟังก์ชันอื่นๆ ที่เกี่ยวข้องกับการจัดการฐานข้อมูล
คำอธิบาย mysql_list_tables() ใช้สำหรับคืนค่าตัวชี้ (handle) ของฐานข้อมูลที่เราระบุ โดยใช้ร่วมกับ mysql_list_dbs() เพื่อแสดงจำนวนตารางข้อมูลทั้งหมดในฐานข้อมูล หรือใช้ร่วมกับ mysql_tablename() เพื่อแสดงรายชื่อของตาราง

52 ฟังก์ชันอื่นๆ ที่เกี่ยวข้องกับการจัดการฐานข้อมูล
คำอธิบาย mysql_list_fields() ใช้สำหรับคืนค่าตัวชี้ (handle) ที่จะนำไปหารายละเอียดเกี่ยวกับคอลัมน์ในตารางและฐานข้อมูลที่กำหนด mysql_tablename() ใช้แสดงชื่อของฐานข้อมูล หรือ ตารางที่เราระบุ

53 int mysql_free_result(int result)
รูปแบบ int mysql_free_result(int result) result ตัวแปรที่เก็บผลลัพธ์จากการคิวรีข้อมูลจากฐานข้อมูล ใช้สำหรับคืนหน่วยความจำที่จัดเก็บผลลัพธ์ข้อมูลจากการคิวรีข้อมูลจากฐานข้อมูล

54 mysql_free_result() เมื่อเราเลิกใช้งาน result
require(“connect_inc.php”); . . . $sql_login = "SELECT * FROM login WHERE USERNAME='" . $username . "' AND PASSWORD='" . $password . "'"; $login_result = mysql_db_query(CURRENT_DB, $sql_login); $login_rows = mysql_fetch_array($login_result); $user = $login_rows["USERNAME"]; mysql_free_result($login_result); เมื่อเราเลิกใช้งาน result ที่ได้จาก mysql_db_query() หากต้องการคืนค่าให้กับหน่วยความจำ

55 int mysql_create_db(string dbname [, int db_connect])
รูปแบบ int mysql_create_db(string dbname [, int db_connect]) dbname ชื่อของฐานข้อมูลที่ต้องการสร้าง db_connect รายละเอียดของการเชื่อมต่อฐานข้อมูล ทำการสร้างฐานข้อมูล สำหรับ db_connect ที่เรากำหนด

56 mysql_create_db() เมื่อเราต้องการสร้างฐานข้อมูลชื่อ pyo
require(“connect_inc.php”); . . . mysql_create_db(“pyo”, $db); เมื่อเราต้องการสร้างฐานข้อมูลชื่อ pyo

57 int mysql_drop_db(string dbname [, int db_connect])
รูปแบบ int mysql_drop_db(string dbname [, int db_connect]) dbname ชื่อของฐานข้อมูลที่ต้องการลบ db_connect รายละเอียดของการเชื่อมต่อฐานข้อมูล ทำการลบฐานข้อมูล สำหรับ db_connect ที่เรากำหนด

58 mysql_drop_db() เมื่อเราต้องการลบฐานข้อมูลชื่อ pyo
require(“connect_inc.php”); . . . mysql_drop_db(“pyo”, $db); เมื่อเราต้องการลบฐานข้อมูลชื่อ pyo

59 array mysql_fetch_array(int result [, int result_type])
รูปแบบ array mysql_fetch_array(int result [, int result_type]) result ข้อมูลที่ได้มาจาก mysql_query() หรือ mysql_db_query() result_type กำหนดค่าที่จัดเก็บในอาร์เรย์ -associative key ให้กำหนดเป็น MYSQL_ASSOC -numeric key ให้กำหนดเป็น MYSQL_NUM ดึงค่าผลลัพธ์ที่ได้จากคำสั่ง mysql_query() หรือ mysql_db_query() เก็บลงอาร์เรย์เพื่อนำไปใช้งานต่อไป

60 mysql_fetch_array() เมื่อเราต้องการนำข้อมูล 1 เรคอร์ด
require(“connect_inc.php”); . . . $sql_login = "SELECT * FROM”; $login_result = mysql_db_query(CURRENT_DB, $sql_login); while($login_rows = mysql_fetch_array($login_result)){ echo “username =” . $login_rows["USERNAME"]; echo “password =” . $login_rows[“PASSWORD"]; . “<br/>; } เมื่อเราต้องการนำข้อมูล 1 เรคอร์ด ที่ได้จากตารางข้อมูล login มาจัดเก็บไว้ในอาร์เรย์ ชื่อ $login_rows หากต้องการอ่านข้อมูลทั้งหมด ต้องใช้ loop while เพื่ออ่านข้อมูล ที่มีให้หมด

61 array mysql_fetch_row(int result)
รูปแบบ array mysql_fetch_row(int result) result ข้อมูลที่ได้มาจาก mysql_query() หรือ mysql_db_query() ใช้สำหรับเลื่อนตำแหน่งของตัวชี้ไปยังเรคอร์ดถัดไป (MoveNext)

62 mysql_fetch_array() เมื่อเราต้องการนำข้อมูล 1 เรคอร์ด
require(“connect_inc.php”); . . . $sql_login = "SELECT * FROM login”; $login_result = mysql_db_query(CURRENT_DB, $sql_login); while($login_rows = mysql_fetch_row($login_result)){ echo “username =” . $login_rows[0]; echo “password =” . $login_rows[1] . “<br/>; } เมื่อเราต้องการนำข้อมูล 1 เรคอร์ด ที่ได้จากตารางข้อมูล login มาจัดเก็บไว้ในอาร์เรย์ ชื่อ $login_rows หากต้องการอ่านข้อมูลทั้งหมด ต้องใช้ loop while เพื่ออ่านข้อมูล ที่มีให้หมด

63 int mysql_insert_id([ int db_connect ])
รูปแบบ int mysql_insert_id([ int db_connect ]) db_connect รายละเอียดของการเชื่อมต่อฐานข้อมูล ใช้เรียกแสดงค่า PK ล่าสุดของตารางที่เราทำการเพิ่มข้อมูล โดยฟิลด์ PK ต้องกำหนดเป็น auto_increment

64 mysql_insert_id () เราไม่จำเป็นต้องใส่ค่า author_id ในส่วนของ
require(“connect_inc.php”); . . . $insert_author = “INSERT INTO AUTHOR (AUTHOR_NAME) VALUES(‘SOMCHAI DEEJAI’)”; $insert_result = mysql_db_query(CURRENT_DB, $insert_author); $author_id = mysql_insert_id(); echo “The last author_id is ” . $author_id; เราไม่จำเป็นต้องใส่ค่า author_id ในส่วนของ คำสั่ง insert เนื่องจากว่า author_id มีชนิดเป็น auto_increment หลังจากเพิ่มข้อมูลเสร็จเราสามารถตรวจสอบค่า author_id ได้จากคำสั่ง mysql_insert_id() ที่จะส่งค่ากลับเป็น ค่า auto_increment ล่าสุด ซึ่งก็คือ author_id นั้นเอง

65 int mysql_num_rows(int result)
รูปแบบ int mysql_num_rows(int result) result ข้อมูลที่ได้มาจาก mysql_query() หรือ mysql_db_query() ใช้สำหรับนับจำนวนเรคอร์ดที่เรา SELECTจากการใช้คำสั่ง mysql_query() หรือ mysql_db_query()

66 mysql_num_rows() ระบบจะทำการนับและส่งกลับ
require(“connect_inc.php”); . . . $sql_login = "SELECT * FROM login”; $login_result = mysql_db_query(CURRENT_DB, $sql_login); $rows = mysql_num_rows($login_result); echo “You have ” . $rows . “ record(s)”; ระบบจะทำการนับและส่งกลับ จำนวนเรคอร์ดข้อมูลที่อ่านได้จาก คำสั่ง SQL

67 mysql_affected_rows()
รูปแบบ int mysql_affected_rows([ int db_connect ]) db_connect รายละเอียดของการเชื่อมต่อฐานข้อมูล ใช้สำหรับนับจำนวนเรคอร์ดที่มีการเปลี่ยนแปลงล่าสุด (INSERT, UPDATE, DELETE)

68 mysql_affected_rows()
require(“connect_inc.php”); . . . $sql_login = “DELETE * FROM login”; $login_result = mysql_db_query(CURRENT_DB, $sql_login); $rows = mysql_affected_rows($login_result); echo “You are delete” . $row . “ record(s)”; ระบบจะทำการนับและส่งกลับ จำนวนเรคอร์ดข้อมูลที่ได้รับ ผลกระทบจาก SQL ในกรณีที่ เป็นการ INSERT, UPDATE, DELETE

69 mixed mysql_result(int result, int record [, mixed field])
รูปแบบ mixed mysql_result(int result, int record [, mixed field]) result ข้อมูลที่ได้มาจาก mysql_query() หรือ mysql_db_query() record ตำแหน่งเรคอร์ด field ตำแหน่งฟิลด์ข้อมูล ใช้สำหรับแสดงผลลัพธ์ในฐานข้อมูล ตามแถว (record) และคอลัมน์(Field) ที่กำหนด

70 mysql_result() เมื่อเราแสดงข้อมูลในเรคอร์ด
require(“connect_inc.php”); . . . $sql_login = "SELECT * FROM login”; $login_result = mysql_db_query(CURRENT_DB, $sql_login); echo mysql_result($login_result, 0, 1); echo mysql_result($login_result, 1, 0); เมื่อเราแสดงข้อมูลในเรคอร์ด และฟิลด์ที่เราต้องการ โดยเฉพาะ เจาะจง

71 mysql_fetch_object()
รูปแบบ int mysql_fetch_object(int result) result ข้อมูลที่ได้มาจาก mysql_query() หรือ mysql_db_query() ใช้สำหรับดึงค่าผลลัพธ์จากฐานข้อมูลไปไว้ใน object โดยที่เราจะสามารถระบุชื่อฟิลด์ได้เลย

72 mysql_fetch_object()
require(“connect_inc.php”); . . . $sql_login = "SELECT * FROM login”; $login_result = mysql_db_query(CURRENT_DB, $sql_login); while($obj = mysql_fetch_object($login_result)){ echo “username =” . obj -> USERNAME . “<br/>”; echo “password =” . obj -> PASSWORD . “<br/>”; } เมื่อเราแสดงข้อมูลในเรคอร์ด ที่ถูกกำหนดในลักษณะ object

73 int mysql_data_seek(int result, int record )
รูปแบบ int mysql_data_seek(int result, int record ) result ข้อมูลที่ได้มาจาก mysql_query() หรือ mysql_db_query() record ตำแหน่งเรคอร์ดที่ต้องการเริ่มค้นหา ใช้สำหรับระบุตำแหน่งของเรคอร์ดที่ต้องการเริ่มต้น (เรคอร์ดแรก คือ 0 )

74 mysql_data_seek() require(“connect_inc.php”); . . .
$sql_login = "SELECT * FROM login”; $login_result = mysql_db_query(CURRENT_DB, $sql_login); mysql_data_seek($login_result, 1); // start search from record 2 while($login_rows = mysql_fetch_array($login_result)){ echo “username =” . $login_rows[“USERNAME”]; echo “password =” . $login_rows[“PASSWORD”] . “<br/>; }

75 int mysql_list_dbs([ int db_connect ])
รูปแบบ int mysql_list_dbs([ int db_connect ]) db_connect รายละเอียดของการเชื่อมต่อฐานข้อมูล ใช้สำหรับคืนค่าตัวชี้ (handle) ของฐานข้อมูล ใช้ร่วมกับ mysql_num_rows() เพื่อแสดงจำนวนฐานข้อมูลทั้งหมด หรือใช้ร่วมกับ mysql_tablename() เพื่อแสดงชื่อของฐานข้อมูลที่เรากำหนด

76 mysql_list_dbs() require(“connect_inc.php”); . . .
$db_list = mysql_list_dbs($db); echo "You have " . mysql_num_rows($db_list) . " database(s)" ;

77 int mysql_list_tables(string dbname [, int db_connect ])
รูปแบบ int mysql_list_tables(string dbname [, int db_connect ]) dbname ชื่อของฐานข้อมูลที่ต้องการแสดงรายละเอียดตาราง db_connect รายละเอียดของการเชื่อมต่อฐานข้อมูล ใช้สำหรับคืนค่าตัวชี้ (handle) ของฐานข้อมูลที่เราระบุ โดยใช้ร่วมกับ mysql_list_dbs() เพื่อแสดงจำนวนตารางข้อมูลทั้งหมดในฐานข้อมูล หรือใช้ร่วมกับ mysql_tablename() เพื่อแสดงรายชื่อของตาราง

78 mysql_list_tables() require(“connect_inc.php”); . . .
$table_list = mysql_list_tables(CURRENT_DB, $db); echo "You have ". mysql_num_rows($table_list) ." table(s) in “ .CURRENT_DB. “ database”; ;

79 mysql_list_fields() รูปแบบ int mysql_list_fields(string dbname, string table_name [, int db_connect ]) dbname ชื่อของฐานข้อมูลที่ต้องการแสดงรายละเอียดตาราง table_name ชื่อของตาราง db_connect รายละเอียดของการเชื่อมต่อฐานข้อมูล ใช้สำหรับคืนค่าตัวชี้ (handle) ของฐานข้อมูลที่เราระบุ โดยจะแสดงรายชื่อฟิลด์ที่จัดเก็บในตารางที่เราต้องการแสดงรายละเอียดฟิลด์

80 mysql_list_fields() require(“connect_inc.php”); . . .
$field_list = mysql_list_fields(CURRENT_DB, “login”, $db); while($i < mysql_num_fields($field_list)){ echo “field name = “ . mysql_field_name($field_list, $i) . “<br/>”; echo “field flag = “ . mysql_field_flags($field_list, $i) . “<br/>”; echo “field type = “ . mysql_field_type($field_list, $i) . “<br/>”; $i++; }

81 int mysql_tablename( int handle, int number)
รูปแบบ int mysql_tablename( int handle, int number) handle ตัวชี้ (handle) ของฐานข้อมูล number ลำดับของฐานข้อมูลหรือตารางที่ต้องการแสดง ใช้แสดงชื่อของฐานข้อมูล หรือ ตารางที่เราระบุ

82 mysql_tablename() require(“connect_inc.php”); . . .
$db_list = mysql_list_dbs($db); echo "You have " . mysql_num_rows($db_list) . " database(s) <br/>"; for($i=0; $i < mysql_num_rows($db_list); $i++){ echo $i ". " . mysql_tablename($db_list, $i) . " <br/>"; } echo "<hr>"; $db_table = mysql_list_tables(CURRENT_DB, $db); echo "You have " . mysql_num_rows($db_table). " table(s) in " . CURRENT_DB . " database <br/>"; for($i=0; $i < mysql_num_rows($db_table); $i++){ echo $i ". " . mysql_tablename($db_table, $i) . " <br/>";

83 สรุป ในการเชื่อมต่อกับระหว่าง PHP กับ MySQL มีลำดับการทำงานเพื่อให้สามารถใช้งานฐานข้อมูลกับ PHP ได้อย่างถูกต้อง คือ การเชื่อมต่อกับฐานข้อมูล การเรียกใช้ฐานข้อมูลผ่านเว็บ การใช้ภาษา SQL กับฐานข้อมูล MySQL การยกเลิกการเชื่อมต่อกับฐานข้อมูล

84 สรุป ปัญหาอีกอย่างที่พบคือ นิสิตไม่มีความเข้าใจในความแตกต่างของชนิดข้อมูลตัวเลข สตริง และวันเวลา เพราะว่าเมื่อเราออกแบบตารางข้อมูล และกำหนดชนิดข้อมูลให้กับข้อมูลแล้วนั้น การที่นิสิตจะ SELECT, INSERT, DELETE, UPDATE ข้อมูลในตารางได้นั้นต้องระบุชนิดข้อมูลใน SQL เพื่อให้ทราบว่าค่าของฟิลด์ใดในตารางข้อมูลที่เป็นตัวเลข หรือ สตริง หรือ วันเวลา


ดาวน์โหลด ppt สำนักวิชาเทคโนโลยีสารสนเทศและการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา

งานนำเสนอที่คล้ายกัน


Ads by Google