ให้เรตสมาชิก: 2 / 5

ดาวใช้งานดาวใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

สารบัญ

เรียบเรียงจากเอกสารต้นฉบับ ADOdb MySQL Tutorial " http://php.weblogs.com/adodb_tutorial " โดย John Lim
You say eether and I say eyether,
You say neether and I say nyther;
Eether, eyether, neether, nyther -
Let's call the whole thing off !

You like potato and I like po-tah-to,
You like tomato and I like to-mah-to;
Potato, po-tah-to, tomato, to-mah-to -
Let's call the whole thing off !

เพลง นี้เกี่ยวกับคนสองคนที่แตกต่างกัน แต่รักกัน และพยายามที่จะเข้าใจซึ่งกันและกัน พยายามประณีประณอม และหาพื้นฐานการอยู่ร่วมกัน ซึ่งเป็นใจความสำคัญของบทความนี้

เรา พบว่า PHP ช่วยในการสร้างเว็บไซต์แบบ dynamic เพราะเป็นภาษาที่มีความยุ่งยากน้อยที่สุด และสนุกที่สุด การสร้างเว็บไซต์เหล่านี้ เราจำเป็นต้องใช้ฐานข้อมูลในการถึงข้อมูลเพื่อการ login, ในการดึงข้อมูลข่าวสารเพื่อแสดงบนเว็บเพจ และในการจัดเก็บข้อมูลที่เรา post ในกระทู้ ดังนั้นเราจึงใช้ MySQL ซึ่งเป็นระบบฐานข้อมูลที่อยู่ในความนิยมสำหรับทำงานเหล่านี้ แต่เมื่อเราพบว่า เว็บไซต์ของเราเป็นที่นิยมมากกว่าที่เราคิดไว้ เราก็จะพบว่า MySQL ไม่สามารถจัดการงานข้อมูลเยอะๆ ของเราได้ มันก็ถึงเวลาสมควรที่จะเปลี่ยนไปใช้ระบบฐานข้อมูลอื่นแล้ว

แต่ PHP ใช้การเข้าถึงระบบฐานข้อมูล ด้วยวิธีที่แตกต่างกัน ถ้าจะเข้าถึง MySQL เราจะใช้ mysql_connect() และเมื่อเราตัดสินใจที่จะ upgrade เป็น Oracle หรือ MS SQL Server เราจะใช้ ocilogon() หรือ mssql_connect() แทน และสิ่งที่เลวร้ายไปกว่านั้นก็คือ parameter ที่เราใช้สำหรับการเข้าถึงนั้นก็แตกต่างกันด้วยเช่นกัน ก็จะเหมือน ระบบฐานข้อมูลหนึ่งพูด po-tato อีกระบบฐานข้อมูลพูด pota-to

Let's call the whole thing off เลิกการเรียกใช้ทุกอย่าง

เมื่อ เป็นเช่นนี้ การใช้ database wrapper library เช่น ADODB จึงเป็นประโยชน์อย่างมาก เมื่อเราต้องการความมั่นใจในการใช้งานแบบ portability ซึ่งการใช้ wrapper library นี้ เราจะมี common API ที่รองรับการติดต่อกับระบบฐานข้อมูลใดๆ ก็ได้ ทำให้เราไม่จำเป็นต้องเปลี่ยนคำสั่งในการติดต่อฐานข้อมูลแต่ละชนิดทุกครั้ง ที่เราเปลี่ยนระบบฐานข้อมูล

ADODB ย่อมาจาก Active Data Objects DataBase ซึ่งปัจจุบันรองรับการทำงานกับ MySQL, PostgreSQL, Oracle, Interbase, Microsoft SQL Server, Access, FoxPro, Sybase, ODBC และ ADO เราสามารถดาวน์โหลด ADODB ได้จาก http://php.weblogs.com/adodb

ตัวอย่าง MySQL

แน่ นอนว่า ระบบฐานข้อมูลที่ใช้กันมากที่สุดกับ PHP คือ MySQL ดังนั้น เราคงคุ้นเคยกับ code ต่อไปนี้ มันจะติดต่อกับ MySQL Server ที่ localhost, ฐานข้อมูล คือ mydb และใช้คำสั่ง SQL select ซึ่งผลลัพธ์จะพิมพ์ออกมาทีละบรรทัด

// ทำการติดต่อไปยังฐานข้อมูล
$db = mysql_connect("localhost", "root", "password");
mysql_select_db("mydb",$db);
// ใช้คำสั่ง SQL
$result = mysql_query("SELECT * FROM employees",$db);
if ($result === false) die("failed");
// วนลูปแถวข้อมูลที่ได้มา
while ($fields = mysql_fetch_row($result)) {
// วนลูป field ในแถวข้อมูล
for ($i=0, $max=sizeof($fields); $i < $max; $i++) {
print $fields[$i].' ';
}
print "\n";
}

ถ้าเราใช้ ADODB เราจะได้ code เป็นดังนี้

include("adodb.inc.php");
$db = NewADOConnection('mysql');
$db->Connect("localhost", "root", "password", "mydb");
$result = $db->Execute("SELECT * FROM employees");
if ($result === false) die("failed");
while (!$result->EOF) {
for ($i=0, $max=$result->FieldCount(); $i < $max; $i++)
print $result->fields[$i].' ';
$result->MoveNext();
print "\n";
}

ดังนั้น ถ้าเราจะเปลี่ยนระบบฐานข้อมูลเป็น Oracle ก็สามารถทำได้ง่าย เพียงแค่เปลี่ยน code ในบรรทัดที่ 2 ให้เป็น

$db = NewADOConnection('oracle');

เรามาดูรายละเอียดของ code กัน

การติดต่อกับระบบฐานข้อมูล

include("adodb.inc.php");
$db = NewADOConnection('mysql');
$db->Connect("localhost", "root", "password", "mydb");

การ เขียน code เพื่อติดต่อกับระบบฐานข้อมูล มีความยุ่งยากกว่าของ MySQL เพราะความจำเป็นในการติดต่อของเรามันยุ่งยากกว่า ใน ADODB เราใช้วิธี object-oriented ในการจัดการความซับซ้อนของการจัดการระบบฐานข้อมูลหลายๆ ระบบ เรามี class ต่างๆ ที่ใช้ในการจัดการระบบฐานข้อมูลที่แตกต่างกัน แต่ไม่ต้องกังวล ถ้าเราไม่คุ้นเคยกับการเขียน object-oriented ความซับซ้อนต่างๆ ถูกซ่อนไว้ภายใน function NewADOConnection() แล้ว

เพียง แค่จำไว้ว่า เราเพียงแค่ใช้ PHP code ในการระบุระบบฐานข้อมูลที่เราจะติดต่อด้วยเท่านั้น โดยการเรียก NewADOConnection(databasedriver) ซึ่ง database driver ที่ใช้คือ mysql, mssql, oracle, oci8, postgres, sybase, vfp, access, ibase และอื่นๆ อีกมากมาย

หลังจากนั้น ในตัวอย่าง เราจึงสร้าง class สำหรับการติดต่อระบบฐานข้อมูลใหม่ โดยใช้ NewADOConnection() และสุดท้ายทำการติดต่อระบบฐานข้อมูลโดยใช้ $db->Connect()
กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
ลืมรหัส เบอร์เก่าเปลี่ยน ใช้งานhotmailไม่ได้
โดย Anonymous ส 14 ธ.ค. 2019 11:11 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
9
ส 14 ธ.ค. 2019 11:11 pm โดย บุคคลทั่วไป
วิธีการดึงข้อมูลปลั็กอินจาก field ที่ผู้ใช้กรอกในไฟล์ xml มาในไฟล์ php
โดย jamepiyawat ส 14 ธ.ค. 2019 5:56 pm บอร์ด Joomla Developing Knowledge
0
10
ส 14 ธ.ค. 2019 5:56 pm โดย jamepiyawat
VDO - MDfiles Version 1.3.46
โดย numtan5839 ส 14 ธ.ค. 2019 5:46 pm บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
2
12
ส 14 ธ.ค. 2019 6:37 pm โดย numtan5839
สอบถามการเปลี่ยน templete บนเว็บ minndphp หน่อยค่ะ
โดย nnamfon.26 ส 14 ธ.ค. 2019 1:39 pm บอร์ด MindPHP News & Feedback
2
25
ส 14 ธ.ค. 2019 1:48 pm โดย nnamfon.26
VDO - Calculation program after including VAT
โดย numtan5839 ส 14 ธ.ค. 2019 10:27 am บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
1
9
ส 14 ธ.ค. 2019 11:09 am โดย thatsawan
งานประจำวันที่ 14 ธันวาคม 2562
โดย numtan5839 ส 14 ธ.ค. 2019 10:13 am บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
3
7
ส 14 ธ.ค. 2019 7:01 pm โดย numtan5839
วิธีการกำหนด css ให้กับ คลาสแบบ !important โดยใช้งาน JQuery
โดย Ittichai_chupol ศ 13 ธ.ค. 2019 5:53 pm บอร์ด Jquery & Ajax Knowledge
0
15
ศ 13 ธ.ค. 2019 5:53 pm โดย Ittichai_chupol
โปรแกรมคำนวณภาษีมูลค่าเพิ่มหลังรวม VAT
โดย prmindphp ศ 13 ธ.ค. 2019 5:31 pm บอร์ด MindPHP News & Feedback
0
15
ศ 13 ธ.ค. 2019 5:31 pm โดย prmindphp
กาลครั้งหนึ่ง ของโปรแกรมเมอร์ฝึกหัด ???
โดย chatee supasand ศ 13 ธ.ค. 2019 4:03 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
13
ศ 13 ธ.ค. 2019 4:03 pm โดย chatee supasand
โปรแกรมเมอร์ คนแรกของโลก คือใคร?
โดย noppadonsk ศ 13 ธ.ค. 2019 3:18 pm บอร์ด Share Knowledge
0
16
ศ 13 ธ.ค. 2019 3:18 pm โดย noppadonsk
RGB กับ CMYK ให้สีแตกต่างกันอย่างไร
โดย noppadonsk ศ 13 ธ.ค. 2019 3:01 pm บอร์ด Share Knowledge
0
7
ศ 13 ธ.ค. 2019 3:01 pm โดย noppadonsk
SECUMAIL เทคโนโลยีป้องกันการ Hack อีเมล
โดย noppadonsk ศ 13 ธ.ค. 2019 2:32 pm บอร์ด Share Knowledge
0
18
ศ 13 ธ.ค. 2019 2:32 pm โดย noppadonsk
VDO - Introducing to Plugin Content MChangelog
โดย numtan5839 ศ 13 ธ.ค. 2019 1:33 pm บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
3
23
ส 14 ธ.ค. 2019 2:55 pm โดย mindphp
Teamviewer 15 ใช้งาน TeamViewer Pilot ได้แล้วบน PC
โดย chatee supasand ศ 13 ธ.ค. 2019 12:09 pm บอร์ด Microsoft Office Knowledge & line & Etc
1
18
ศ 13 ธ.ค. 2019 1:38 pm โดย rihankhan
VDO โปรแกรมคำนวณภาษีมูลค่าเพิ่มหลังรวม VAT
โดย numtan5839 ศ 13 ธ.ค. 2019 10:05 am บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
4
22
ส 14 ธ.ค. 2019 5:42 pm โดย mindphp
icon ธงภาษาไม่แสดง
โดย numtan5839 ศ 13 ธ.ค. 2019 9:48 am บอร์ด MindPHP News & Feedback
0
18
ศ 13 ธ.ค. 2019 9:48 am โดย numtan5839
งานประจำวันที่ 13 ธันวาคม 2562
โดย numtan5839 ศ 13 ธ.ค. 2019 9:27 am บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
3
26
ศ 13 ธ.ค. 2019 7:33 pm โดย numtan5839
งานประจำวันที่ 13 ธันวาคม 2562
โดย noppadonsk ศ 13 ธ.ค. 2019 9:03 am บอร์ด MT36 - นายนพดล สุชญากูล
14
49
ส 14 ธ.ค. 2019 11:57 am โดย jamepiyawat
Plugin Content MChangeLog ใน Joomla เป็นตัวช่วยให้ เพิ่มเนื้อหาที่มีการเปลี่ยนแปลงแบบ เพิ่มเนื้อหา อัพเดด fix ปัญหา
โดย prmindphp พฤ 12 ธ.ค. 2019 6:46 pm บอร์ด MindPHP News & Feedback
0
35
พฤ 12 ธ.ค. 2019 6:46 pm โดย prmindphp
วิธีการเขียน SQL สำหรับเปลี่ยน Collation เพื่อปรับเปลี่ยนการรองรับภาษา ใน ตารางฐานข้อมูล
โดย Ittichai_chupol พฤ 12 ธ.ค. 2019 4:17 pm บอร์ด SQL Knowledge
0
20
พฤ 12 ธ.ค. 2019 4:17 pm โดย Ittichai_chupol