วันเสาร์ที่ 10 พฤศจิกายน พ.ศ. 2555

PHP - การใช้ MySQL


ในภาษา PHP มี function ที่เกี่ยวข้องกับ MySQL โดยตรง รายละเอียดของแต่ละ function นั้น มีดังนี้

1. mysql_close

ใช้เมื่อต้องการยกเลิกการติดต่อกับ MySQL โดยจะมีรูปแบบดังนี้

int mysql_close(int [link_identifier]);

โดย  function  นี้ต้องการ  argument  หนึ่งตังคือ  link  ldentifier   ซึ่งจะได้จากคำสั่ง mysql_connect และ ถ้าสามารถยกเลิกได้สำเร็จ function นี้จะ return ค่า TURE ออก ถ้ายกเลิกไม่สำเร็จ จะ return ค่า FALSE

2. mysql_connect

ใช้เมื่อต้องการเชื่อมต่อสู่ MySQL โดยจะมีรูปแบบคำสั่งดังนี้

int mysql_connect(string [hostname] [:port], string [username] ,string [password]);

function นี้ต้องการ argument 3 ตัว ที่เกี่ยวข้องกับการเชื่อมต่อกับ MySQL คือ hostname คือ ชื่อเครื่องที่มี MySQL ทำงานอยู่ (MySQL Server) ซึ่งเราต้องการเชื่อมต่อด้วย port คือหมายเลขของ port ที่ให้บริการ MySQL บนเครื่อง MySQL Server ซึ่งจะใส่หรือไม่ใส่ก็ได้  ถ้าไม่ใส่  ก็จะใช้ค่ามาตรฐาน
username คือ ชื่อผู้ใช้ที่มีสิทธิ์ใช้ MySQL
password คือ รหัสผ่านสำหรับผู้ใช้คนนั้น
ถ้าทำการเชื่อมต่อได้ function นี้จะ return ค่า link ldentifier ออกมา (เพื่อนำไปใช้ในการจัดการกับฐานข้อมูล MySQL ต่อไป) แต่ถ้าเชื่อมต่อไม่ได้  ก็จะ return ค่า FALSE ออกมา

ตัวอย่าง
// create connection
$connection = mysql_connect("servername","username","password");

// test connection
if (!$connection) {
echo "Couldn't make a connection!";
exit;
}

3. mysql_create-db

  ใช้เมื่อต้องการสร้าง Database ใหม่ขึ้นมา มีรูปแบบคือ

                             int mysql_create_db(string database name, int [link_identifier]);

  โดยต้องการ argument คือ ชื่อ Database ที่ต้องงการสร้างขึ้นมาใหม่  และ Link Identifier ของ MySQL ที่ ต้องการสร้าง database

4. mysql_db_query

  ใช้เมื่อต้องการส่ง SQL message ไปยัง MySQL เพื่อ query ข้อมูล มีรูปแบบคือ

                             int mysql_db_query(string database, string query, int [link_identifier]);

  มี argument คือ ชื่อ Database ที่ต้องการ query, SQL message ที่ใช้ในการ query และ Link Identifier ของ MySQL ที่มี Database นั้นอยู่ ในกรณีที่ query เป็นผลสำเร็จก็จะ Return ค่าเป็น result Identifier ที่ใช้ไปยัง result set ที่เก็บผลการทำงาน ออกมา  แต่ถ้า query ไม่สำเร็จ ก็จะ return FALSE ออกมา

5. mysql_drop_db

              ใช้ในกรณีที่ต้องการลบ Database ทิ้งจาก MySQL มีรูปแบบคือ

                             int mysql_drop_db(string database_name, int [link_identifier]);

  โดยมี  argument คือ ขื่อ Database ที่ต้องการลบ และ Link Identifier ของ MySQL ที่ต้องการติดต่อได้ ถ้าลบได้สำเร็จ  ก็จะ Retrun  TRUE  ออกมา  ถ้าลบไม่สำเร็จ  ก็จะ return FALSE ออกมา

6. mysql_errno

  แสดง error number ของคำสั่งก่อนหน้าที่ มีรูปแบบคือ

                             int mysql_errno(int [link_identifier]);

7. musql_error

         แสดง error message ของ คำสั่งก่อนหน้านี้ มีรูปแบบคือ

                             string mysql_error(int [link_identifier]);

8. mysql_fetch_array

              อ่านข้อมูลผลลัพธ์ในรูปของ Associative Array มีรูปแบบคือ

                             array myssql_fetch_array(int result, int [result_type]);

  ต้องการ argument คือ ชื่อ result  identifier และ ค่า  result type ในกรณีที่มีผลลัพธ์ที่ต้องการ ก็จะ return ค่า  array  ของผลลัพธ์ออกมา  ซึ่งสามารถดึงค่าข้อมูลออกมาได้  โดยอาศัย field name นั่นเอง  ในกรณีที่เกิดปัญหา  ก็จะ return  FALSE  ออกมาแทน

9. mysql_fetch_length

  ใช้ในการดูขนาดของข้อมูลที่ใหญ่ที่สุดของผลลัพธ์แต่ละตัว ใน result set มีรูปแบบคือ

                             array mysql_fetch_length(int result);

  โดยจะ return ค่า array ของ ขนาดข้อมูลในแต่ละ field ของ row สุดท้ายที่ ถูก fetch ออกมา หรือไม่ ค่า FALSE  ถ้าเกิดปัญหาขึ้น

10. mysql_fetch_row

  ดึงข้อมูลออกมาหนึ่ง row จาก result set ในรูปของ array มีรูปแบบคือ

                            array mysql_fetch_row(int result);

  ต้องการ argument คือ result  identifier และ return ค่า array ที่เก็บข้อมูลของ row แรก (ถ้าเรียก mysqll_fetch_row อีกครั้ง ก็จะเป็นการเรียก row ถัดๆ  ไปเรื่อยๆ)  ออกมา หรือ retrun FALE ถ้าเกิดปัญหาขึ้น array ที่เก็บข้อมูลนั้น เป็น Scalar Array ซึ่งจะอ้างอิงข้อมูลเรียงลำดับตาม field และมี Index เริ่มต้นเป็น 0

11. mysql_field_name

  อ่านชื่อของ field จาก result set มีรูปแบบคือ

                             string mysql_field_name(int result, int field_index);
 
  เมื่อ argument คือ result identifier และ field index ที่ต้องการอ่านชื่อออกมา

12. mysql_field_table

  อ่านชื่อ table จาก result set ที่ field ที่กำหนด อยู่ด้านในมีรูปแบบคือ

                             string mysql_field_table(int result, int field_offset);

  เมื่อ argument คือ result identifier และ field offset ของ table ที่ต้องการอ่านชื่อออกมา

13. mysql_field_type

  อ่านชนิดของ field จาก result set ตามที่ต้องการ มีรูปแบบคือ

                             string mysql_field_type(int result, int field_offset);

  ต้องการ argument คือ result identifier และ field offset ที่ต้องการหาชนิด

14. mysql_field_len

  อ่านความยาของ field จาก result set ตามที่ต้องการ มีรูปแบบ คือ

                            string mysql_field_len(int result, int field_offset );

  ต้องการ argument คือ result identifier และ field offset ที่ต้องการหาความยาว

15. mysql_ free_result

  ลบ result set ทิ้ง มีรูปแบบคือ

                            int mysql_free_result(int result);

  ต้องการ argument คือ result identifier ของ result set ที่ต้องการลบทิ้ง  ซึ่งการลบ result set  ที่ไม่ต้องการใช้ทิ้งนั้น  จะช่วยประหยัด memory  ของระบบได้มาก

16. mysql_list_fileds

  แสดงรายชื่อ field ของ Table ใน Database ที่ต้องการออกมา มีรูปแบบคือ

                            int mysql_list_fields(string database_name, string table_name, int[link_identifer]);

  ต้องการ argument คือ ชื่อ Database  และ ชื่อ Table ที่ต้องการแสดง Field ออกมา โดยจะ
return ค่า result identifier ของ result set ออกมา ซึ่งต้องเอาไปใช้กับ function ในกลุ่ม mysql_field_*() ทั้งหลาย

17. mysql_list_dbs

  แสดงรายการของ Database ใน MySQL ที่ติดต่อด้วย มีรูปแบบคือ

                            int mysql_list_dbs(int [link_identifier]);

  มี argrment คือ Link Identifier และจะ return  ค่า result identifier ออกมา  และต้องใช้ function  mysql_tablename() เพื่ออ่านค่าใน result set นี้ออกมา

18. mysql_listK_tables

  แสดงรายการของ Tables ของ Database ใน MySQL ที่ติดต่อด้วย มีรูปแบบคือ

                             int mysql_list_tables(string database, int [link_identifier]);

  มี argument คือ Link Identifier และ Database name และ จะ return ค่า result identifier ออกมา และต้องใช้ function mysql_tablename() เพื่ออ่านค่าใน result set นี้ออกมา

19. mysql_num_fields

  อ่านจำนวน fields จาก result set มีรูปแบบคือ

                             int mysql_num_fields(int result);

  โดย function นี้ จะ return ค่า จำนวน fields ใน result set ที่ชี้โดย result identifier ที่กำหนดให้ออกมา

20. mysql_num_rows

  อ่านจำนวน rows จาก result set มีรูปแบบคือ

                            int mysql_num_rows(int result);

  โดย function นี้จะ return ค่าจำนวน rows ใน result set ที่ชี้โดย result identifier ที่กำหนดให้ออกมา

21. mysql_query

  ส่ง SQL Query Message ไปยัง MySQL มีรูปแบบคือ

                            int mysql_query(string query, int [link_identifier]);

  โดย function นี้จะ return TRUE เมื่อ Query เป็นผลสำเร็จ สำหรับกรณีที่ Query  Message เป็นแบบ UPDATE, INSERT หรือ DELETE หรือ Result Set สำหรับ Query  Message แบบ SELECT

22. mysql_result

  อ่านข้อมูลใน field ที่ต้องการ  ออกจาก result set มีรูปแบบคือ

                             int mysql_result(int result, int row, mixed field);
 
  ต้องการ qrgument คือ result identifier, row และ field offset หรือว่า field name หรือว่า
field table.field name หรือว่า aliased ของ  field นั้น ก็ได้

23. mysql_select_db

  เลือก Databse ใน MySQL มีรูปแบบคือ

                            int mysql_select_db(string database_name, int [link_identifier]);

  โดย argument คือ ชื่อ Database ที่ต้องการเลือก และ Link Identifier โดยจะ return TRUE ถ้าเลือกได้ สำเร็จ และ FALSE เมื่อเกิด Error

ตัวอย่างใช้งาน PHP ติดต่อกับฐานข้อมูลของ MySQL

วิธีที่1

<?php

// create connection
$connection = mysql_connect("servername","username","password");

// test connection
if (!$connectiion) {
echo "Couldn't make a connection!";
exit;
}

// select database named "myDB"
$db = mysql_select_db("myDB", $connection);

// test selection
if (!$db) {
echo "couldn't select database!";
exit;
}

// create SQL statement
$sql = "SELECT COFFEE_NAME, ROAST_TYPE, QUANTITY
FROM COOEE_INVENTORY
ORDER BY QUANTITY DESC";

// execute SQL query and get result
$sql_result = mysql_query($sql, $connection);

// start results formatiion
echo "<TABLE BORDER=1>";
echo "<TR><TH>Coffee Naem</TH><TH>Roast Type</TH><TH>Quantity</TH>";

// format results by row
while ($row = mysql_fetch_array($sql_result)) {
$coffee_name = $row["COFFEE_NAME"];
$roast_type = $row["ROAST_TYPE"];
$quantity = $row["QUANTITY"];
echo "<TR><TD>$coffee_name</TD><TD>$roast_type</TD><TD>$quantity</TD></TD>";
}

echo "</TABLE>";

// free resources and close connectiion
mysql_free_result($sql_result);
mysql_close($connection);
?>


วิธี 2
<?
include("mydb.inc");
mysql_connect(localhost,$user,$password);

$databse = "mydb";
@mysql_select_db("$database") or die("Unable to select database");

/*Search database for name*/
$table="contact";

$query="select * from $table group by name";

$result=mysql_query($query);

mysql_close();

/*Display Results*/

$num=mysql_numrows($result);

$i=0;
while($i < $num) {
   
    $name=mysql_result($result,$i,"name");
    $email=mysql_result($result,$i,"email");
    $ext=mysql_result($result,$i,"extension");
    $nick=mysql_result($result,$i,"nick");
    $id=mysql_result($result,$i,"id");

     //Alternate row colors in our table
     print ($i % 2) ? "<tr bgcolor=\"D7DEFF\">" : "<tr bgcolor =\"C2CCFF\">";

     print "<td align=middle><b>$name</b></td><td align=middle><$email</b></td>";
     print "<td align=middle><b>$ext</b></td><td align=middle><b>$nick</b></td>";
     print "<td align=middle><a
href='update_db.phtml?id=$id'><b>Update</b> </a></td></tr>";

     ++$i;
}
?>




ไม่มีความคิดเห็น: