วันเสาร์ที่ 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;
}
?>
สมัครสมาชิก:
ส่งความคิดเห็น (Atom)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น