Home
Course
Service
Contact
About Us

 

 

 

 

 

 

 

 

 


Web Database

เรียนรู้การพัฒนา Web Database โดยการใช้ภาษาสคริปต์ PHP (Professional Home Page) ในการติดต่อกับโปรแกรมจัดการฐานข้อมูลต่างๆ เช่น MS Access (ซึ่งอาศัยการติดต่อผ่านทาง ODBC (Open Data Base Connectivity)) และMySQL ซึ่งเป็นดาต้าเบสเซิร์ฟเวอร์ที่นิยมใช้งานร่วมกับ PHP และยังเป็นของฟรีสามารถหามาใช้งานได้ง่าย ( Download ได้ที่ http://www.mysql.com ) โดยทั้งนี้ PHP สามารถติดต่อกับฐานข้อมูลอื่นๆ เช่น mSQL, Informix, Oracle เป็นต้น

  • การใช้คำสั่ง SQL (Structured Query Language) เบื้องต้น

สำหรับใช้ในการนำมาเขียนสคริปต์ เพื่อทำงานกับแฟ้มข้อมูลต่างๆ โดยคำสั่ง SQL เป็นคำสั่งที่ใช้ในการติดต่อกับระบบฐานข้อมูล เพื่ออ่านข้อมูล, แก้ไขข้อมูล, เพิ่มข้อมูล ตลอดจนการลบข้อมูลออกจากระบบฐานข้อมูล

  1. การอ่านข้อมูล
  2. คำสั่งที่ใช้มีรูปแบบดังนี้

    SELECT [ * | DISTINCT ] <column1,…>

    FROM <table name>

    [WHERE <condition>]

    [ORDER BY <column1, …> [[ASC] [DESC]];

    เช่น SELECT * FROM employee

            WHERE position = ‘manager’

            ORDER BY salary DESC;

  3. การแก้ไขข้อมูล
  4. คำสั่งที่ใช้มีรูปแบบดังนี้

    UPDATE <table name>

    SET <column1>[, column2, …] = <expression | subquery>

    [WHERE <condition>];

    เช่น UPDATE employee

            SET salary = salary * 1.2

            WHERE position = ‘manager’;

  5. การเพิ่มข้อมูล
  6. คำสั่งที่ใช้มีรูปแบบดังนี้

    INSERT INTO <table name> [(column1, column2, …)]

    VALUES (<value1, value2, …>);

    เช่น INSERT INTO employee (empno, empname, position, salary)

            VALUES ( 10001, ‘somluck’ , ‘manager’ , 20000);

  7. การลบข้อมูล

คำสั่งที่ใช้มีรูปแบบดังนี้

DELETE FROM <table name> [WHERE <condition>];

เช่น DELETE FROM employee

        WHERE salary >=50000

 

*หมายเหตุ คำสั่งของระบบฐานข้อมูลแต่ละระบบอาจแตกต่างกัน การใช้ระบบฐานข้อมูล ควรจะศึกษาคู่มือที่มากับซอฟต์แวร์ของระบบนั้น

  • การใช้ภาษาสคริปต์ PHP ติดต่อกับฐานข้อมูล

ฟังก์ชั่นเบื้องต้น ที่ใช้ในการติดต่อกับฐานข้อมูล

  1. ติดต่อกับฐานข้อมูล MySQL
  2. mysql_connect (hostname[:port], [username], [password]);

    เป็นฟังก์ชั่นที่ใช้เปิดการติดต่อดาต้าเบสเซิร์ฟเวอร์ MySQL โดย hostname เป็นข้อมูลชนิดข้อความ หมายถึงเครื่องที่ติดตั้งระบบฐานข้อมูล MySQL ซึ่งในกรณีที่ติดตั้ง MySQL ไว้ในเครื่องเดียวกับ web server สามารถระบุเป็น “localhost” แทนชื่อจริงได้เลย

    port เป็นข้อมูลชนิดตัวเลข หมายถึงหมายเลข port ที่จะใช้ในการติดต่อกับ MySQL จะระบุหรือไม่ก็ได้ (ค่า Defult =Port 3306)

    username เป็นข้อมูลชนิดข้อความ หมายถึงชื่อของผู้ใช้ที่มีสิทธิเข้าใช้ระบบฐานข้อมูลของ MySQL

    password เป็นข้อมูลชนิดข้อความ หมายถึงรหัสผ่านของ username

    เช่น mysql_connect (“localhost”,”root”,”password”);

     

    mysql_db_query (databasename, query, [link_identifier]);

    เป็นฟังก์ชั่นที่ใช้ในการกำหนดแฟ้มข้อมูลที่จะติดต่อและส่งคำสั่งไปยังระบบฐานข้อมูลของ MySQL เหมือนกันกับการใช้ 2 ฟังก์ชั่นนี้คือ mysql_select_db (databasename, [link_identifier]); เป็นฟังก์ชั่นที่ใช้เลือกแฟ้มข้อมูลที่จะใช้ และ mysql_query (query, [link_identifier]); เป็นฟังก์ชั่นส่งคำสั่งไปทำงานที่ระบบฐานข้อมูลของ MySQL โดย databasename เป็นชื่อแฟ้มข้อมูลที่ต้องการนำมาใช้ เป็นข้อมูลชนิดข้อความ

    query เป็นคำสั่ง SQL ที่จะใช้ เป็นข้อมูลชนิดข้อความ

    link_identifier จะระบุหรือไม่ก็ได้ หมายถึงตัวเลขอ้างอิงที่ได้จากการใช้ฟังก์ชั่นติดต่อกับฐานข้อมูล เป็นข้อความชนิดตัวเลข

    เช่น $db = “database”

    $sql = “select * from table

    $result = mysql_db_query ($db, $sql);

     

    mysql_fetch_array (resut);

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

    เช่น  $result = mysql_db_query ($db, $sql);

            $row = mysql_fetch_array ($result);     //จะเป็นการอ่านค่าและถ่ายค่าลงตัวแปรอาร์เรย์ ทีละ 1 แถว(record) ดังนั้นหากเราต้องการแสดงค่าของข้อมูลทุกรายการที่มีในตารางผลลัพธ์ จะต้องกำหนดคำสั่งให้วนรอบการทำงานของฟังก์ชั่น mysql_fetch_array() ไปเรื่อยๆ ดังนี้

    while ($row = mysql_fetch_array($result)) {

    echo $row ["idx"], $row ["UserName"],$row ["LastName"];$row ["FreeText"] }

    //ตัวแปรอาร์เรย์ที่ชื่อ $row จะเก็บค่าของแต่ละคอลัมน์ไว้ เมื่อต้องการแสดงค่าก็จะอ้างตามหมายเลขลำดับของอาร์เรย์ ซึ่งก็คือลำดับของคอลัมน์ โดยเริ่มจาก 0 ไปถึงจำนวนคอลัมน์ที่มีลบออก 1 (เช่นมี 4 คอลัมน์ ก็จะเริ่มต้นจากคอลัมน์ที่ 0 คือ $row[0] ไปจนถึงคอลัมน์ที่ 3 คือ $row[3] หรือจะอ้างจากชื่อของคอลัมน์เลยก็ได้ดังตัวอย่าง

     

    mysql_num_rows (result);

    เป็นฟังก์ชั่นใช้นับจำนวนแถว (record)ของข้อมูล

    result เป็นค่าอ้างอิงที่เป็นผลลัพธ์จากการเรียกใช้ฟังก์ชั่น mysql_db_query() หรือ mysql_query()

    เช่น $result = mysql_db_query ($db, $sql);

    $nrow = mysql_num_rows ($result);

    echo “ข้อมูลทั้งหมดมีจำนวน $nrow รายการ”;

     

    mysql_num_fields (result);

    เป็นฟังก์ชั่นใช้นับจำนวนคอลัมน์ของข้อมูล

    result เป็นค่าอ้างอิงที่เป็นผลลัพธ์จากการเรียกใช้ฟังก์ชั่น mysql_db_query() หรือ mysql_query()

    เช่น $result = mysql_db_query ($db, $sql);

    $ncol = mysql_num_fields ($result);

    while ($row = mysql_fetch_array ($result)) {

    for ($I=0; $I<$ncol; $I++) {

    echo $row[$I];

    }

    }

    // จะได้ค่าจำนวนคอลัมน์ทั้งหมด นำไปเก็บในตัวแปรชื่อ $ncol เพื่อใช้ในการวนรอบแสดงผลต่อไป

     

    mysql_close ([link_identifier]);

    เป็นฟังก์ชั่นในการยกเลิกการติดต่อกับระบบฐานข้อมูล โดยปกติไม่ค่อยจำเป็นต้องเรียกใช้ฟังก์ชั่นนี้ เพราะการติดต่อกับดาต้าเบสเซิร์ฟเวอร์จะถูกปิดเองอัตโนมัติอยู่แล้ว

    เช่น $link = mysql_connect (“localhost”,”root”,”password”);

    ...

    mysql_close ($link);

     

  3. ติดต่อกับฐานข้อมูล MS Access

โดยต้องอาศัย ODBC (Open Data Base Connectivity คือ การติดต่อกันระหว่างโปรแกรมสองโปรแกรม เพื่อให้สามารถเรียกใช้ข้อมูลร่วมกันได้)

odbc_connect (dsn, user, password);

เป็นฟังก์ชั่นในการติดต่อกับ ODBC driver ค่าที่ต้องผ่านเข้าไปให้กับฟังก์ชั่นนี้ คือ dsn, ชื่อผู้ใช้ และรหัสผ่าน (ถ้าแฟ้มข้อมูลนั้นไม่ได้กำหนดชื่อผู้ใช้และรหัสผ่าน ก็ให้ระบุค่าเป็น null)

dsn เป็นข้อมูลชนิดข้อความ หมายถึง Data Source Name

user เป็นข้อมูลชนิดข้อความ หมายถึง ผู้ใช้

password เป็นข้อมูลชนิดข้อความ หมายถึงรหัสผ่านของผู้ใช้

เช่น $dsn = ”accessdsn”;

$usr = “”;

$pwd = “”;

$cont = odbc_connect ($dsn, $usr, $pwd);

 

odbc_exec (connection_id, query_string);

เป็นฟังก์ชั่นที่ใช้ในการส่งคำสั่งไปยังระบบฐานข้อมูล Access

connection_id เป็นข้อมูลชนิดตัวเลข เป็นค่าที่ได้จากการเรียกใช้ฟังก์ชั่น odbc_connect()

query_string เป็นข้อมูลชนิดข้อความ เป็นคำสั่งให้ทำงาน ซึ่งเขียนตามหลักภาษา SQL

เช่น $sql = “select * from players”;

$result = odbc_exec ($cont, $sql);

 

odbc_fetch_row (result_id);

เป็นฟังก์ชั่นที่ใช้เมื่อได้ผลลัพธ์ หากจะแสดงข้อมูลในรายการใดออกมา ก็จะเป็นค่าข้อมูฆลที่ถูกจัดเก็บเอาไว้ในรายการที่ “ตัวชี้รายการ” หรือ record pointer กำลังชี้อยู่ ซึ่งโดยปกติจะชี้อยู่ที่รายการแรกของตารางผลลัพธ์ เราสามารถเลื่อนเรคอร์ดพอยน์เตอร์ไปยังรายการถัดไป โดยอาศัยฟังก์ชั่นนี้ ซึ่งจะเลื่อนทีละรายการ ต่อการเรียกใช้ทีละครั้ง

result_id เป็นข้อมูลชนิดตัวเลข เป็นค่าอ้างอิงที่ได้จากการเรียกฟังก์ชั่น odbc_exec()

เช่น while (odbc_fetch_row ($result)) {

    ...

    }

 

odbc_result (result_id, field);

เป็นฟังก์ชั่นใช้แสดงข้อมูลในแต่ละคอลัมน์ แต่ละรายการ โดยที่ทำหน้าที่รับค่าข้อมูลจากแต่ละคอลัมน์ ของรายการที่ถูกเรคอร์ดพอยน์เตอร์ชี้อยู่

result_id เป็นข้อมูลชนิดตัวเลข เป็นค่าอ้างอิงที่ได้จากการเรียกฟังก์ชั่น odbc_exec()

field เป็นข้อมูลชนิดข้อความหรือตัวเลขก็ได้ หมายถึง ชื่อคอลัมน์หรือลำดับของคอลัมน์ ซึ่งมีค่าได้ตั้งแต่ 1 ไปจนถึงจำนวนคอลัมน์ของตารางข้อมูลนั้นๆ

เช่น do{

echo”<table><tr><td>”,odbc_result ($result, “id”),”</td>\n”;

echo”<td>”,odbc_result ($result, “name”),”</td></tr>\n”;

}

while (odbc_fetch_row ($result))

echo”</table>\n”;

*หมายเหตุ ฟังก์ชั่นอื่นๆทั้งหมดสามารถหาอ่านเพิ่มเติมได้ที่ http://www.php.net

 



:: ศูนย์ฝึกอบรมบางปะกง การไฟฟ้าฝ่ายผลิตแห่งประเทศไทย 8/4 หมู่ 8 ตำบลท่าข้าม อำเภอบางปะกง จังหวัดฉะเชิงเทรา 24130 ::