ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
ได้พิมพ์โดยKeerati Lamwilai ได้เปลี่ยน 9 ปีที่แล้ว
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 เพื่อให้ทราบว่าค่าของฟิลด์ใดในตารางข้อมูลที่เป็นตัวเลข หรือ สตริง หรือ วันเวลา
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.