ให้เรตสมาชิก: 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()
กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
MacBook: Uninstall MAMP แล้ว แต่ safari ยังดึงข้อมูลจาก MAMP อยู่
โดย matsuura จ 20 พฤษภาคม 2019 4:30 pm บอร์ด Programming - PHP
1
3
จ 20 พฤษภาคม 2019 9:33 pm โดย mindphp
ผ่อนดาวน์น้อยกับคอนโดพร้อมอยู่ให้คุณเป็นเจ้าของได้แล้ววันนี้
โดย Patty Perfume จ 20 พฤษภาคม 2019 2:06 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
3
จ 20 พฤษภาคม 2019 2:06 pm โดย Patty Perfume
อยากทราวิธีการ ระบุ ค่าสี ใน <a></a> เฉพาะที่ต้องการค
โดย Ittichai_chupol ส 18 พฤษภาคม 2019 7:35 pm บอร์ด HTML CSS
2
33
ส 18 พฤษภาคม 2019 7:39 pm โดย mindphp
สร้าง Report แบบง่ายด้วย Python + RML
โดย teenproza7 ส 18 พฤษภาคม 2019 7:03 pm บอร์ด Python Knowledge
2
46
ส 18 พฤษภาคม 2019 7:35 pm โดย mindphp
เคล็ดลับ วิธีแก้ขอบตาดำคล้ำแบบธรรมชาติ หมดปัญหาตาดำเป็นหมีแพนด้า
โดย teenproza7 ส 18 พฤษภาคม 2019 5:24 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
13
ส 18 พฤษภาคม 2019 5:24 pm โดย teenproza7
RML กับ Python ใช้งานร่วมกันยังไง
โดย teenproza7 ส 18 พฤษภาคม 2019 4:34 pm บอร์ด Programming - C/C++ & java & Python
11
62
ส 18 พฤษภาคม 2019 7:26 pm โดย thatsawan
เคล็ดลับแก้อาการนอนไม่หลับ
โดย teenproza7 ส 18 พฤษภาคม 2019 4:17 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
12
ส 18 พฤษภาคม 2019 4:17 pm โดย teenproza7
วิธีแก้ง่วง ง่วงนอน นอนน้อย แต่นอนนะ
โดย teenproza7 ส 18 พฤษภาคม 2019 4:10 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
11
ส 18 พฤษภาคม 2019 4:10 pm โดย teenproza7
วิธีชาร์จแบตมือถือ แบบผิดๆที่บอกต่อๆกันมา
โดย teenproza7 ส 18 พฤษภาคม 2019 4:01 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
19
ส 18 พฤษภาคม 2019 4:01 pm โดย teenproza7
เคล็ดลับบำรุงสายตา
โดย teenproza7 ส 18 พฤษภาคม 2019 3:38 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
16
ส 18 พฤษภาคม 2019 3:38 pm โดย teenproza7
สอบถามวิธีการเขียน Python เพื่อ สร้างไฟล์ XML หน่อยครับ
โดย teenproza7 ส 18 พฤษภาคม 2019 3:10 pm บอร์ด Programming - C/C++ & java & Python
1
11
ส 18 พฤษภาคม 2019 3:12 pm โดย thatsawan
ต้องการปิดไม่ให้ browser รับ cookie อย่างไงค่ะ
โดย thatsawan ส 18 พฤษภาคม 2019 2:47 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
1
10
ส 18 พฤษภาคม 2019 3:02 pm โดย thatsawan
งานประจำวันที่ 18 พฤษาคม 2562
โดย teenproza7 ส 18 พฤษภาคม 2019 9:44 am บอร์ด M082 - ยศนันท์ ปันคำ
1
7
ส 18 พฤษภาคม 2019 9:45 am โดย teenproza7
ของเดิมแต่เพิ่มความสามารถใหม่ด้วย Override Python
โดย teenproza7 ศ 17 พฤษภาคม 2019 6:11 pm บอร์ด Python Knowledge
0
15
ศ 17 พฤษภาคม 2019 6:11 pm โดย teenproza7
เงินได้ประเภทที่ 5 คืออะไร
โดย สริญญา สมสา ศ 17 พฤษภาคม 2019 5:28 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
14
ศ 17 พฤษภาคม 2019 5:28 pm โดย สริญญา สมสา
เช็ค Spec คอมแบบง่ายๆ ด้วย dxdiag
โดย teenproza7 ศ 17 พฤษภาคม 2019 5:15 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
16
ศ 17 พฤษภาคม 2019 5:15 pm โดย teenproza7
มารู้จักโปรแกรมเมอร์คนแรกของโลกกันเถอะ
โดย teenproza7 ศ 17 พฤษภาคม 2019 4:54 pm บอร์ด Share Knowledge
0
18
ศ 17 พฤษภาคม 2019 4:54 pm โดย teenproza7
เงินได้ประเภทที่ 4 คืออะไร
โดย สริญญา สมสา ศ 17 พฤษภาคม 2019 4:48 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
17
ศ 17 พฤษภาคม 2019 4:48 pm โดย สริญญา สมสา
บีบอัดไฟล์ให้เล็กลง ด้วย ZIP
โดย teenproza7 ศ 17 พฤษภาคม 2019 4:44 pm บอร์ด Share Knowledge
0
14
ศ 17 พฤษภาคม 2019 4:44 pm โดย teenproza7
สืบทอดความสามารถจากพ่อและแม่ใน Python OOP
โดย teenproza7 ศ 17 พฤษภาคม 2019 3:33 pm บอร์ด Python Knowledge
0
22
ศ 17 พฤษภาคม 2019 3:33 pm โดย teenproza7