1 / 80

โดย อ. นัฐพงศ์ ส่งเนียม siam2dev

โดย อ. นัฐพงศ์ ส่งเนียม http://www.siam2dev.com. Lec10 :: PHP กับการเชื่อมต่อฐานข้อมูล MySQL ( MySQL DATABASE FUNCTION ). MySQL DATABASE FUNCTION.

avon
Download Presentation

โดย อ. นัฐพงศ์ ส่งเนียม siam2dev

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. โดย อ. นัฐพงศ์ ส่งเนียมhttp://www.siam2dev.com Lec10 :: PHP กับการเชื่อมต่อฐานข้อมูล MySQL ( MySQL DATABASE FUNCTION )

  2. MySQL DATABASE FUNCTION MySQL เป็นระบบฐานข้อมูลที่ใช้งานร่วมกับ PHP หาใช้ได้ง่ายระบบมีประสิทธิ์ภาพสูงและเป็นแบบ RDBMS(ralational database management system)

  3. ระบบฐานข้อมูลที่ PHP สามารถเชื่อมต่อได้ OracleSybase mSQL MySQL Solid ODBC PostgreSQL Adabas D FilePro Velocis Informix dBase Unix dbm

  4. PHP ทำงานร่วมกับ MySQL ได้อย่างไร การที่ภาษา PHP นั้นจะสามารถติดต่อกับฐานข้อมูลใดได้ต้องมีการกำหนด option ( --with-mysql ) ในการ compile ของ PHP แต่ก่อนที่จะ compile ภาษา PHP ให้ติดต่อกับระบบฐานข้อมูลใดควรที่จะติดตั้งระบบฐานข้อมูลนั้นให้สำเร็จก่อน

  5. คำสั่ง SQL เบื้องต้น • คำสั่ง SQL (structure query language) เป็นคำสั่งที่ใช้ในการติดต่อกับระบบฐานข้อมูล เพื่อ • อ่านข้อมูล • แก้ไขข้อมูล • เพิ่มข้อมูล • การลบข้อมูล

  6. คำสั่ง SQL (ต่อ) คำสั่งที่ใช้อ่านข้อมูล SELECT [ALL | DISTINCT] select_list [INTO new_table_] FROM table_source [WHERE search_condition] [GROUP BY group_by_expression] [HAVING search_condition] [ORDER BY order_expression [ASC | DESC] ]

  7. คำสั่ง SQL ? (ต่อ) คำสั่งที่ใช้แก้ไขข้อมูล UPDATE { table_name WITH ( <table_hint_limited> […n]) | view_name | rowset_function_limited } SET Column_name = { expression | DEFAULT | NULL } { [FROM {<table_source>} [,…n] [ WHERE <search_condition>] }

  8. คำสั่ง SQL ? (ต่อ) คำสั่งที่ใช้เพิ่มข้อมูล INSERT [INTO] { table_name WITH ( <table_hint_limited> […n]) | view_name | rowset_function_limited } { [(column_list)] { VALUES { ( DEFAULT | NULL | expression } [,…n] ) | derived_table | execute_statement } }

  9. คำสั่ง SQL ? (ต่อ) คำสั่งที่ใช้ลบข้อมูล DELETE [FROM] { table_name WITH ( <table_hint_limited> […n] ) | view_name |rowset_function_limited } [FROM {<table_source>} […n] ] [WHERE <search_condition> ]

  10. ฟังก์ชันที่ใช้ติดต่อ MySQL • การนำ PHP ไปใช้เพื่อติดต่อกับระบบฐานข้อมูลนั้นทำได้ง่าย เพราะ PHP ได้เตรียมฟังก์ชันที่ใช้สำหรับการติดต่อไว้แล้ว โดยฟังก์ชันที่เตรียมไว้จะแบ่งตามระบบฐานข้อมูลที่แตกต่างกัน • mysql_connect • mysql_affected_rows • mysql_create_db • mysql_data_seek

  11. mysql_connect • เป็นฟังก์ชันที่ใช้ในการติดต่อกับระบบฐานข้อมูลของ MySQL รูปแบบของคำสั่ง int mysql_connect(string hostname, string username, string password) ; hostname คือเครื่องที่ติดตั้งระบบฐานข้อมูลของ MySQL username คือ ซื่อของผู้ใช้ที่มีสิทธิ์เข้าใช้ระบบฐานข้อมูลของ MySQL password คือ รหัสผ่านของ username

  12. mysql_close • เป็นฟังก์ชันที่ใช้ยกเลิกการติดต่อกับระบบฐานข้อมูล รูปแบบของคำสั่ง int mysql_close(int link_identifier); link_identifier

  13. ตัวอย่าง <? //ติดต่อระบบฐานข้อมูลของ MySQL $link = mysql_connect(“localhost”,”root”,””); if($link) { echo “ติดต่อระบบฐานข้อมูลของ MySQL ได้สำเร็จ<br>”; } else { echo “ไม่สามารถติดต่อระบบฐานข้อมูลของ MySQL ได้<br>”; } if ($link) { //ยกเลิกการติดต่อกับระบบฐานข้อมูล mysql_close($link); echo “ยกเลิกการติดต่อกับระบบฐานข้อมูลแล้ว”; } ?>

  14. mysql_create_db • เป็นฟังก์ชันที่ใช้สร้างฐานข้อมูล(database) รูปแบบของคำสั่ง int mysql_create_db( string databasename, int link_identifier) ; ต.ย. คำสั่ง $MyCon = mysql_connect(“localhost”,”root”,””); mysql_create_db( “MyDB”, $MyCon) ;

  15. ตัวอย่าง <? //ติดต่อระบบฐานข้อมูลของ MySQL $link = mysql_connect(“localhost”,”root”,””); //สร้างฐานข้อมูลซื่อ test_db $chk = mysql_create_db(“test_db”,$link); //ตรวจสอบว่าสร้างฐานข้อมูล test_db ได้สำเร็จหรือไม่ if($chk) { echo “ฐานข้อมูล test_db สร้างได้สำเร็จ”; } else { echo “ไม่สามารถสร้างฐานข้อมูล test_db ได้”; } //ยกเลิกการติดต่อกับระบบฐานข้อมูล mysql_close($link); ?>

  16. mysql_affected_rows • ใช้ตรวจสอบว่าคำสั่ง (INSERT, DELETE, UPDATE) ที่สั่งไปทำกับข้อมูลที่ระบบฐานข้อมูล มีจำนวนรายการ(record) ของข้อมูล กี่รายการที่มีผลกับคำสั่งนั้น รูปแบบของคำสั่ง int mysql_affected_rows(int link_identifier) ; - link_identifier

  17. ตัวอย่าง <? $link = mysql_connect(“localhost”,”seree”,”phpseree”); mysql_select_db(“test_db”,$link); $query = “update phpuser set old = 18 where id < 3”; $result = mysql_query($query,$link); $affect_rows = mysql_affected_rows($link); echo”จำนวนรายการที่ถูกทำด้วยคำสั่ง UPDATE : $affect_rows”; mysql_close($link); ?>

  18. mysql_data_seek • เป็นฟังก์ชันที่ใช้เลื่อนตัวชี้(pointer) ไปยังแถวของรายการข้อมูลที่ต้องการ รูปแบบของคำสั่ง int mysql_data_seek(int result_identifier, int row_number); - result_identifier คือเลขที่อ้างถึงผลลัพธ์ที่ได้จากคำสั่ง SELECT - row_number

  19. ตัวอย่าง <? //ติดต่อระบบฐานข้อมูลของ MySQL $link = mysql_connect(“localhost”,”root”,””); //เลือกฐานข้อมูลที่ต้องการ mysql_select_db(“CarDB”,$link); //กำหนดคำสั่งที่ต้องส่งไปทำงานที่ฐานข้อมูล $query ="select id, name,surname from member"; // ส่งคำสั่งไปทำงานที่ฐานข้อมูล $result = mysql_query($query,$link); //เลื่อน pointer ไปยังแถวที่ 3 $chk = mysql_data_seek($result,2);

  20. ตัวอย่าง(ต่อ) if ($chk) { //อ่านข้อมูลของแถวที่ 3 $data = mysql_fetch_row($result); echo “รหัส $data[0] ของ $data[1] $data[2]”; } else { echo “ไม่สามารถอ่านข้อมูลแถวที่ 3 ได้”; } //ยกเลิกการติดต่อกับระบบฐานข้อมูล mysql_close($link); ?>

  21. mysql_db_query • ใช้ส่งคำสั่งไปยัง MySQL เหมือนกับฟังก์ชัน mysql_query() แต่สามารถกำหนดฐานข้อมูลที่ต้องการจะติดต่อได้ รูปแบบคำสั่ง int mysql_db_query(string databasename, string query, int link_identifier); - databasename ชื่อฐานข้อมูล - query คำสั่ง SQL - link_identifier ตัวแปรที่ใช้ติดต่อระบบฐานข้อมูลของ MySQL

  22. ตัวอย่าง <? //ติดต่อระบบฐานข้อมูลของ MySQL $link = mysql_connect(“localhost”,”seree”,”phpseree”); //กำหนดคำสั่งที่ต้องส่งไปทำงานที่ฐานข้อมูล $query = “select id,name,surname from phpuser”; //ส่งคำสั่งไปทำงานที่ฐานข้อมูล test_db ของ MySQL //ไม่ต้องใช้ฟังก์ชัน mysql_select_db() $result = mysql_db_query(“test_db”,$query,$link);

  23. ตัวอย่าง(ต่อ) //เลื่อน pointer ไปยังแถวที่ 3 $chk = mysql_data_seek($result,2); if($chk) { //อ่านข้อมูลของแถวที่ 3 $data = mysql_fetch_row($result); echo “รหัส $data[0] ของ $data[1] $data[2]”; } else { echo “ไม่สามารถอ่านข้อมูลแถวที่ 3 ได้”; } //ยกเลิกการติดต่อกับระบบฐานข้อมูล mysql_close($link); ?>

  24. mysql_drop_db • เป็นฟังก์ชันที่ใช้ลบ(drop) ฐานข้อมูลออกจากระบบฐานข้อมูลของ MySQL รูปแบบของคำสั่ง int mysql_drop_db(string databasename, int link_identifier); - databasename ชื่อฐานข้อมูล - link_identifier ตัวแปรที่ใช้ติดต่อระบบฐานข้อมูลของ MySQL

  25. mysql_errno • เป็นฟังก์ชันที่ใช้ในการรับค่าเลขรหัสของความผิดพลาด(error number)ที่เกิดขึ้นครั้งสุดท้ายเมื่อมีการติดต่อกับ MySQL รูปแบบของคำสั่ง int mysql_errno(int link_identifier);

  26. mysql_error • เป็นฟังก์ชันที่ใช้ในการรับข้อความรายละเอียดของความผิดพลาด(error description)ที่เกิดขึ้นครั้งสุดท้ายเมื่อมีการติดต่อกับ MySQL รูปแบบของคำสั่ง string mysql_error(int link_identifier);

  27. mysql_fetch_array • ใช้อ่านค่าของข้อมูลจากการใช้คำสั่ง SELECT ของฟังก์ชัน mysql_query หรือ mysql_db_query ให้อยู่ในรูปของตัวแปรอาร์เรย์ • mysql_fetch_array สามารถกำหนดดัชนีได้ทั้งแบบ ซื่อคอลัมน์ และเลขลำดับของคอลัมน์ รูปแบบของคำสั่ง array mysql_fetch_array (int result);

  28. ตัวอย่าง <? //ติดต่อระบบฐานข้อมูลของ MySQL $link = mysql_connect(“localhost”,”root”,””); //เลือกฐานข้อมูลที่ต้องการ mysql_select_db(“test_db”,$link); //กำหนดคำสั่งที่ต้องส่งไปทำงานที่ฐานข้อมูล $query = select id,name,surname from phpuser”; //ส่งคำสั่งไปทำงานที่ระบบฐานข้อมูลของ MySQL $result = mysql_query($query,$link); //อ่านข้อมูลที่เก็บอยู่ในอาร์เรย์ $result ทีละแถว echo “อ่านค่าจากอาร์เรย์ โดยกำหนดดัชนีแบบซื่อของคอลัมน์<br>”; while ( $data = mysql_fetch_array($result){ //ฟังชันก์ mysql_fetch_row() ไม่สามารถทำได้ echo $data[“id”].” “.$data[“name”].” “.$data[“surname”].”<br>”; }

  29. //ไปเริ่มอ่านที่แถวแรกใหม่//ไปเริ่มอ่านที่แถวแรกใหม่ mysql_data_seek($result,0); echo “อ่านค่าจากอาร์เรย์ โดยกำหนดดัชนีแบบเลขลำดับ<br>”; while ( $data = mysql_fetch_array($result) ){ echo $data[0].” “.$data[1].” “.$data[2].”<br>”; } //ยกเลิกการติดต่อกับระบบฐานข้อมูล mysql_close($link); ?>

  30. mysql_fetch_field • เป็นฟังก์ชันที่ใช้อ่านรายละเอียดของคอลัมน์ซึ่งจะเก็บอยู่ในรูปของออปเจค(object) รูปแบบของคำสั่ง array mysql_fetch_field (int result,[int field]);

  31. mysql_fetch_lengths • ใช้อ่านค่าขนาดหรือความยาวของข้อมูลที่เก็บอยู่ของแต่ละคอลัมน์นั้นโดยค่าที่อ่านจะเก็บไว้ในรูปแบบของตัวแปรอาร์เรย์ การใช้ฟังก์ชันนี้ต้องใช้หลังจากเรียกใช้ฟังก์ชัน mysql_fetch_row,mysql_fetch_array,mysql_fetch_object แล้ว รูปแบบคำสั่ง array mysql_fetch_lengths($result);

  32. ตัวอย่าง <? $link = mysql_connect(“localhost”,”seree”,”phpseree”); mysql_select_db(“test_db”,$link); $query = “select * form phpuser”; $result = mysql_query($query,$link); $getdata = mysql_fetch_row($result); $arrmax = mysql_fetch_lengths($result); for ($index = 0;$index < count($arrmax);$index++){ echo”คอลัมน์ $index มีขนาดสูงสุด ”.$arrmax[$index].”<br>”;} mysql_close($link); ?>

  33. mysql_fetch_object • ทำงานเหมือนกับฟังก์ชัน mysql_fetch_array() และ mysql_fetch_row() แต่แตกต่างกันที่ค่าคืนกลับมานั้นเป็นออบเจค (object) แทนที่จะเป็นอาร์เรย์เหมือนกับฟังก์ชันทั้งสอง รูปแบบของคำสั่ง object mysql_fetch_object(int result);

  34. ตัวอย่าง <? //ติดต่อระบบฐานข้อมูลของ Mysql $link = mysql_connect("localhost","seree",""); //เลือกฐานข้อมูลที่ต้องการ mysql_select_db("test_db",$link); //กำหนดคำสั่งที่ต้องส่งไปทำงานที่ฐานข้อมูล $query = "select * from phpuser"; //ส่งคำสั่งไปทำงานที่ระบบฐานข้อมูลของ Mysql $result = mysql_query($query,$link); //อ่านข้อมูลมาเก็บไว้ที่ object while ($object =mysql_fetch_object($result)){ echo $object ->id." "; echo $object ->name." "; echo $object ->surname."<BR> "; } //ยกเลิกการติดต่อกับระบบฐานข้อมูล mysql_close($link); ?>

  35. mysql_fetch_row • ทำงานเหมือนกับฟังก์ชัน mysql_fetch_array() แต่ดัชนีที่ใช้กำหนดข้อมูลในอาร์เรย์นั้นต้องเป็นเลขลำดับของคอลัมน์เท่านั้นไม่สามารถใช้ดัชนีเป็นชื่อของคอลัมน์ได้เหมือนกับฟังก์ชัน mysql_fetch_array() รูปแบบของคำสั่ง array mysql_fetch_row(int result);

  36. mysql_filed_name • เป็นฟังก์ชันที่ใช้อ่านชื่อคอลัมน์ รูปแบบของคำสั่ง String mysql_field_name(int result , int field);

  37. ตัวอย่าง <? //ติดต่อระบบฐานข้อมูลของ Mysql $link = mysql_connect(“localhost”,”seree”,”phpseree”); //เลือกฐานข้อมูลที่ต้องการ mysql_select_db(“test_db”,$link); //กำหนดคำสั่งที่ต้องส่งไปทำงานที่ฐานข้อมูล $query = “select * form phpuser”; //ส่งคำสั่งไปทำงานที่ระบบฐานข้อมูลของ Mysql $result = mysql_query($query,$link); //หาจำนวนของคอลัมน์ $numfield = mysql_num_fields($result); //แสดงชื่อของคอลัมน์

  38. ตัวอย่าง(ต่อ) for(){ echo “คอลัมน์ $index ชื่อ ”.mysql_field_name($result,$index),”<br>”; } //ยกเลิกการติดต่อกับระบบฐานข้อมูล mysql_close($link); ?>

  39. mysql_field_seek • เป็นฟังก์ชันที่ใช้เลื่อนตัวชี้ (pointer) ของคอลัมน์ให้ไปยังคอลัมน์ที่ต้องการ รูปแบบของคำสั่ง Int mysql_field_seek(int result,int field);

  40. ตัวอย่าง <? //ติดต่อระบบฐานข้อมูลของ Mysql $link = mysql_connect(“localhost”,”seree”,”phpseree”); //เลือกฐานข้อมูลที่ต้องการ mysql_select_db(“test_db”,$link); //กำหนดคำสั่งที่ต้องส่งไปทำงานที่ฐานข้อมูล $query = “select * form phpuser”; //ส่งคำสั่งไปทำงานที่ระบบฐานข้อมูลของ Mysql $result = mysql_query($query,$link); //หาจำนวนของคอลัมน์ $numfield = mysql_num_fields($result);

  41. ตัวอย่าง(ต่อ) //คอลัมน์แรก $data = mysql_fetch_field($result); echo “คอลัมน์แรก “.$data->table.” “.$data->name””.$data->type; echo”<br>”; //เลื่อน pointer คอลัมน์ที่ ข้ามคอลัมน์ที่ 2 mysql_field_seek($result,3); //คอลัมน์ที่สี่ $data = mysql_fetch_field($result); echo “คอลัมน์ที่สี่ “.$data->table.” ”.$data->name.””.$data->type; //ยกเลิกการติดต่อกับระบบฐานข้อมูล mysql_close($link); ?>

  42. mysql_field_table • เป็นฟังก์ชันที่ใช้อ่านชื่อตาราง (table)ของคอลัมน์นั้น รูปแบบของคำสั่ง string mysql_field_table(int result,int field);

  43. ตัวอย่าง <? //ติดต่อระบบฐานข้อมูลของ Mysql $link = mysql_connect(“localhost”,”seree”,”phpseree”); //เลือกฐานข้อมูลที่ต้องการ mysql_select_db(“test_db”,$link); //กำหนดคำสั่งที่ต้องส่งไปทำงานที่ฐานข้อมูล $query = “select phpuser.name , phpalias.alias , phpuser.surname from phpuser , phpalias where phpuser.id = phpalias.id”;

  44. ตัวอย่าง(ต่อ) //ส่งคำสั่งไปทำงานที่ระบบฐานข้อมูลของ Mysql $result = mysql_query($query,$link); //หาจำนวนของคอลัมน์ $numfield = mysql_num_fields($result); //แสดงชื่อตาราง (table) ของคอลัมน์ for ($index = 0 ; $index < $sumfield ; $index++){ echo “คอลัมน์ “.mysql_field_name($result,$index).”มาจากตาราง “; echo mysql_field_table($result,$index).”<br>”; //ยกเลิกการติดต่อกับระบบฐานข้อมูล mysql_close($link); ?>

  45. mysql_field_type • เป็นฟังก์ชันที่ใช้อ่านข้อมูลประเภทของคอลัมน์ รูปแบบของคำสั่ง string mysql_field_type(int result,int field);

  46. ตัวอย่าง <? //ติดต่อระบบฐานข้อมูลของ Mysql $link = mysql_connect(“localhost”,”seree”,”phpseree”); //เลือกฐานข้อมูลที่ต้องการ mysql_select_db(“test_db”,$link); //กำหนดคำสั่งที่ต้องส่งไปทำงานที่ฐานข้อมูล $query = “select phpuser.name , phpalias.alias , phpuser.surname from phpuser , phpalias where phpuser.id = phpalias.id”; //ส่งคำสั่งไปทำงานที่ระบบฐานข้อมูลของ Mysql $result = mysql_query($query,$link); //หาจำนวนของคอลัมน์ $numfield = mysql_num_fields($result);

  47. ตัวอย่าง(ต่อ) //แสดงประเภทของคอลัมน์ for ($index = 0 ; $index < $sumfield ; $index++){ echo “คอลัมน์ “.mysql_field_name($result,$index). ”มาจากตาราง “; echo mysql_field_table($result,$index); echo “ประเภทของคอลัมน์” .mysql_field_type($result,$index).”<br>”; } //ยกเลิกการติดต่อกับระบบฐานข้อมูล mysql_close($link); ?>

  48. mysql_field_flags • เป็นฟังก์ชันที่ใช้อ่านรายละเอียดเฉพาะที่กำหนดให้กับคอลัมน์นั้น เช่น not_null , primary_key , unique_key , multiple_key , blob , unsigned , binary , enum , auto_increment , timesstamp รูปแบบของคำสั่ง string mysql_field_flags (int result,int field);

  49. ตัวอย่าง <? //ติดต่อระบบฐานข้อมูลของ Mysql $link = mysql_connect(“localhost”,”seree”,”phpseree”); //เลือกฐานข้อมูลที่ต้องการ mysql_select_db(“test_db”,$link); //ส่งคำสั่งไปทำงานที่ระบบฐานข้อมูลของ Mysql $result = mysql_query($query,$link); //หาจำนวนของคอลัมน์ $numfield = mysql_num_fields($result);

  50. ตัวอย่าง(ต่อ) //แสดงรายละเอียดเฉพาะของแต่ละคอลัมน์ที่กำหนดให้ for ($index = 0 ; $index < $sumfield ; $index++){ echo “คอลัมน์ :“.mysql_field_name($result,$index);” echo “รายละเอียดเฉพาะที่กำหนดให้:”.eregi_replace(“ “,”,”, mysql_field_flags($result,$index).”<br>”; } //ยกเลิกการติดต่อกับระบบฐานข้อมูล mysql_close($link); ?>

More Related