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

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
บทที่ 4 PHP with Database
Advertisements

การเชื่อมต่อฐานข้อมูลด้วย PHP
– Web Programming and Web Database
Php with Database Professional Home Page :PHP
PHP Connect Database.
การเขียนโปรแกรม PHP เชื่อมต่อกับ MySQL
Introduction to PHP, MySQL – Special Problem (Database)
PHP with MySQL.
โปรแกรมขึ้นทะเบียนเกษตรกร ผู้ปลูกข้าวนาปี ปี 2557/58
การจองห้องพัก โรงแรม.
การแก้ปัญหาการใช้งาน ADO กับ Database อุทัย เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศ และการสื่อสาร มหาวิทยาลัยนเรศวร วิทยาเขต สารสนเทศพะเยา.
CHAPTER 14 Database Management
ASP.NET Uthai ShiangJan Information and Communication Technology.
หลักสูตรระบบบริหารจัดการระบบชุมสายโทรศัพท์ IP. การเข้าโปรแกรม eConfiguration  ดับเบิ้ลคลิกไอคอน eConfiguration บน หน้าจอ Desktop.
การจัดทำเว็บไซต์สำเร็จรูปด้วยโปรแกรม Joomla!
JSP ติดต่อฐานข้อมูล.
แนะนำการใช้งานระบบโทรศัพท์ ผ่านอินเทอร์เน็ต (VoIP) กลุ่มสารสนเทศ สนผ. สพฐ.
การดำเนินงานด้าน เทคโนโลยีสารสนเทศ และ คอมพิวเตอร์ ปีงบประมาณ 2551 กองบำรุงพันธุ์สัตว์
การรับและส่งค่าระหว่าง ฟอร์ม อาจารย์อุทัย เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศ และการสื่อสาร มหาวิทยาลัยนเรศวร วิทยาเขต สารสนเทศพะเยา.
ความเสี่ยง Risk. How To Hack ?  วิธีการ Hack คือ ไปอ่านค่า config อีก Web หนึ่ง ซึ่งอยู่ใน host เดียวกัน โดยตัว Host Server ของอาจารย์ ไม่ได้ทำระบบป้องกันในการเข้าถึง.
เครือข่ายคอมพิวเตอร์
Computer in Business เรื่อง การใช้งาน Access เบื้องต้น.
1. Select query ใช้สำหรับดึงข้อมูลที่ต้องการ
ระบบบริหารงานบุคคล.
เทคโนโลยีอินเตอร์เน็ต
ประสบการณ์จาก … คณะสู่หอกลาง by....JIM สืบเนื่องจากนโยบายของสถาบัน ฯ ที่มีการยุบรวมห้องสมุดจาก คณะต่าง ๆ มารวมไว้กับสำนักหอสมุดกลาง และได้เพิ่มพื้นที่อีกหนึ่ง.
MS-Access. SQL สามารถเรียกใช้ฐานข้อมูล ได้ทุกค่าย Access MySQL Foxpro DBF DB2Oracle MS SQL.
1 การใช้งานระบบจัดการ ฐานข้อมูล Mysql ผ่าน phpmyadmin.
ยินดีต้อนรับผู้เข้าอบรมการพัฒนาเว็บไซต์ สำนักงานการปฏิรูปที่ดินเพื่อเกษตรกรรม.
วิทยาเขตมีบริการอะไรให้บ้าง การบริการ บัญชีผู้ใช้และรหัสผ่าน สำหรับใช้งาน Internet สามารถ ติดต่อขอ บัญชีผู้ใช้และรหัสผ่าน (Password) ด้วย ตนเอง บัตรประจำตัวพนักงาน.
บทที่ 1: การเขียนโปรแกรมบน เว็บ (Web Programming) AJ Wathinee dung-onnam RERU.
ระบบงานธุรการ (GA Center). นายวรากร หอมมณฑา รหัสนิสิต สาขาเทคโนโลยีสารสนเทศ คณะวิทยาการสารสนเทศ มหาวิทยาลัยบูรพา ตำแหน่งงาน System Programmer.
การฟัง การดู และการพูด. การวิเคราะห์เรื่องและประเมินเรื่องที่ฟังและดู การฟังและการดู เป็นทักษะที่จำเป็นในการติดต่อสื่อสารในชีวิตประจำวัน ซึ่งอาจได้รับจากบุคคล.
วิชาเทคโนโลยีสารสนเทศเพื่อชีวิต
เทคโนโลยีพื้นฐานของระบบสารสนเทศ
ข้อบังคับ ระเบียบ ประกาศ คำสั่ง
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
การทำ Normalization 14/11/61.
และการใช้เครื่องมือในการสร้างเว็บเพจ
การติดต่อฐานข้อมูลและการแสดงผล
การติดต่อกับฐานข้อมูล(MySQL)
หน่วยการเรียนที่ 6 เรื่อง การจัดการฐานข้อมูลด้วย PHP Function
การใช้ Social Media เพื่อการสื่อสาร
อาจารย์อภิพงศ์ ปิงยศ บทที่ 2 : แบบจำลองเครือข่าย (Network Models) part1 สธ313 การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์ทางธุรกิจ อาจารย์อภิพงศ์
การติดต่อฐานข้อมูลและการแสดงผล
การพัฒนาการใช้งานในระบบเว็บ
โครงสร้างภาษา C Arduino
1.เครื่องทวนสัญญาณ (Repeater)
บทที่ 5 ระบบจัดการฐานข้อมูล
Seminar 1-3.
การติดต่อฐานข้อมูลและการแสดงผล
.:ประโยชน์ของอินเทอร์เน็ต
ระบบบริหารจัดการงานวิจัยของหน่วยงาน Department Research Management System DRMS โดยทีมพัฒนาระบบ DRMS สำนักงานคณะกรรมการวิจัยแห่งชาติ (วช.)
วันที่ 15 – 16 มิถุนายน 2558 ณ สำนักคอมพิวเตอร์และเครือข่าย
บทที่ 3 ซอฟต์แวร์ประยุกต์
แผนระบบสารสนเทศประจำปีงบประมาณ และ แผน e-Faculty ประจำปีงบประมาณ คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่
คณะทำงานขับเคลื่อนงานโภชนาการ (สูงดีสมส่วน)
การอบรมระบบงานฯสำหรับผู้ใช้งาน (ส่วนภูมิภาค)
คณะกรรมการบริหารโรงพยาบาล คณะกรรมการพัฒนาคุณภาพ
การประชุมเพื่อหารือเกี่ยวกับโครงการยกเลิกสำเนา
มาทำเว็บกันเถอะ โปรแกรม Wordpress.
วิธีเข้าระบบทดสอบจริยธรรมตำรวจ
หน่วยการเรียนที่ 7 เรื่อง การจัดการฐานข้อมูลด้วย Dreamweaver
บทที่ 8 การใช้โปรแกรมสำเร็จรูป ในการสร้างระบบการสอนบนเครือข่าย “Moodle” อาจารย์เทพยพงษ์ เศษคึมบง สาขาวิชาเทคโนโลยีและนวัตกรรมการศึกษา pws.npru.ac.th/thepphayaphong.
การสมัครเข้าใช้งานโปรแกรม (การขอ Username/ Password)
ระบบสำนักงานอัตโนมัติ (Office Automation : OA)
การใช้งานอินเทอร์เน็ต
ฟังก์ชันของโปรแกรม Computer Game Programming
การสรุปผลข้อมูล และ Action Query
ระบบการส่งต่อข้อมูลอาการไม่พึงประสงค์จากการแพ้ยา
ใบสำเนางานนำเสนอ:

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

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

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

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

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

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

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

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 กรณีที่เรียกใช้งานฐานข้อมูล ภาษาไทยแล้วแสดงเป็น ?????

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

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

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

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 ที่เตรียมเอาไว้

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

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

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

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

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

TABLE: LOGIN

TABLE: LOGIN

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

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>

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"); ?>

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

TABLE: AUTHOR

TABLE: AUTHOR

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

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

TABLE : BOOK

TABLE : BOOK

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

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

TABLE : CUSTOMER

TABLE : CUSTOMER

TABLE : CUSTOMER อุทัย เซี่ยงเจ็น พรเทพ โรจนวสุ สุรางคนา ระวังยศ 1 CUST_ID CUST_NAME BIRTHDATE CUST_ADDR 1 อุทัย เซี่ยงเจ็น 2000-01-01 CHIANGMAI 2 พรเทพ โรจนวสุ 2000-02-25 LAMPANG 3 สุรางคนา ระวังยศ 1998-05-10 NAN 4 SOMKID JAIDEE 1997-10-18 5 SOMSRI DEEJAI 1990-07-12 PHAYAO

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

TABLE : ORDERS

TABLE : ORDERS

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

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

TABLE : ORDER_DETAIL

TABLE : ORDER_DETAIL

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

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

TABLE: PUBLISHER

TABLE: PUBLISHER

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

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

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

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

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

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

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

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

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() หากต้องการคืนค่าให้กับหน่วยความจำ

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

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

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

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

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() เก็บลงอาร์เรย์เพื่อนำไปใช้งานต่อไป

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 เพื่ออ่านข้อมูล ที่มีให้หมด

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

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 เพื่ออ่านข้อมูล ที่มีให้หมด

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

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 นั้นเอง

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

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

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

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

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) ที่กำหนด

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); เมื่อเราแสดงข้อมูลในเรคอร์ด และฟิลด์ที่เราต้องการ โดยเฉพาะ เจาะจง

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

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

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

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/>; }

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

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

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() เพื่อแสดงรายชื่อของตาราง

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”; ;

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

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++; }

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

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 + 1 . ". " . 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 + 1 . ". " . mysql_tablename($db_table, $i) . " <br/>";

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

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