ให้เรตสมาชิก: 1 / 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()
กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
MOD_MTB_NEWS_RECENT
เจอปัญหา cannot write to log file pg_upgrade_internal.log ตอนอัพเกรด postgresql
โดย mindphp พฤ 27 ก.ค. 2017 7:21 pm บอร์ด Linux - Web Server
1
16
พฤ 27 ก.ค. 2017 7:21 pm โดย mindphp
สถาบันเทคโนโลยีไทย-ญี่ปุ่น เปิดรับสมัครนักศึกษาใหม่ ป.โท ภาคเรียนที่ 2 ประจำปีการศึกษา 2560 วันนี้ – 4 ต.ค.60
โดย gradtni พฤ 27 ก.ค. 2017 5:06 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
28
พฤ 27 ก.ค. 2017 5:06 pm โดย gradtni
สอบถามปัญหาการเรียกใช้ css ใน phpbb ค่ะ
โดย Ik Kat พฤ 27 ก.ค. 2017 1:48 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
4
37
พฤ 27 ก.ค. 2017 1:48 pm โดย thatsawan
สอบถามเรื่อง json กับ php ครับ
โดย pookpix พฤ 27 ก.ค. 2017 8:55 am บอร์ด Programming - PHP
1
22
พฤ 27 ก.ค. 2017 8:55 am โดย mindphp
สินค้าไม่ขึ้นตามที่ต้องการ
โดย บุคคลทั่วไป พ 26 ก.ค. 2017 7:52 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
1
25
พ 26 ก.ค. 2017 7:52 pm โดย บุคคลทั่วไป
Visibility การกำหนดสิทธิ์ในการเข้าถึงตัวแปร
โดย Ik Kat พ 26 ก.ค. 2017 4:14 pm บอร์ด PHP Knowledge
0
26
พ 26 ก.ค. 2017 4:14 pm โดย Ik Kat
วิธีการสร้าง Function ใช้เอง
โดย Ik Kat พ 26 ก.ค. 2017 3:44 pm บอร์ด PHP Knowledge
0
28
พ 26 ก.ค. 2017 3:44 pm โดย Ik Kat
วิธีการเรียกใช้งาน Class และ Method
โดย Ik Kat พ 26 ก.ค. 2017 3:07 pm บอร์ด PHP Knowledge
0
15
พ 26 ก.ค. 2017 3:07 pm โดย Ik Kat
ไม่สามารถตั้งรอบระยเวลาบัญชีของโปรแกรมบัญชีสรรพากร
โดย บุคคลทั่วไป พ 26 ก.ค. 2017 2:58 pm บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
1
25
พ 26 ก.ค. 2017 2:58 pm โดย บุคคลทั่วไป
วิธีการใช้งาน Array Function เบื้องต้น
โดย Ik Kat พ 26 ก.ค. 2017 2:39 pm บอร์ด PHP Knowledge
0
21
พ 26 ก.ค. 2017 2:39 pm โดย Ik Kat
วิธีการใช้งาน Date Time Function เบื้องต้น
โดย Ik Kat พ 26 ก.ค. 2017 2:11 pm บอร์ด PHP Knowledge
0
20
พ 26 ก.ค. 2017 2:11 pm โดย Ik Kat
วิธีการใช้งาน Math Function เบื้องต้น
โดย Ik Kat พ 26 ก.ค. 2017 1:33 pm บอร์ด PHP Knowledge
0
22
พ 26 ก.ค. 2017 1:33 pm โดย Ik Kat
วิธีการใช้งาน String Function เบื้องต้น
โดย Ik Kat พ 26 ก.ค. 2017 1:10 pm บอร์ด PHP Knowledge
0
17
พ 26 ก.ค. 2017 1:10 pm โดย Ik Kat
ความหมายของฟังก์ชั่น PHP ที่ควรรู้จัก
โดย Ik Kat พ 26 ก.ค. 2017 11:42 am บอร์ด PHP Knowledge
0
24
พ 26 ก.ค. 2017 11:42 am โดย Ik Kat
การ Export รายงานสรุปยอดซื้อ ในโปรแกรมบัญชี Express
โดย pleng พ 26 ก.ค. 2017 10:51 am บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
21
พ 26 ก.ค. 2017 10:51 am โดย pleng
Joomla ออกเวอร์ชั่น 3.7.4 Fix Bug เรื่องความปลอดภัย 2 จุดใหญ่ และ Error ในเวอร์ชั่นก่อนหน้า
โดย mindphp พ 26 ก.ค. 2017 6:51 am บอร์ด PHP News
0
24
พ 26 ก.ค. 2017 6:51 am โดย mindphp
ผมใช้ Odoo9 ผมทำการ Restor มันนานมั้งใช้เวลาเป็นวันเลยครับ
โดย nuattawoot อ 25 ก.ค. 2017 7:58 pm บอร์ด Odoo
2
9
อ 25 ก.ค. 2017 8:23 pm โดย mindphp
ทำไมฉันเข้าเฟสบุกของฉันต้องมีคำว่าเฟสม่ต
โดย คูกูหาที่เกีดบ่อได้ ต้องทำใจรอเนื้อคู่ อ 25 ก.ค. 2017 7:40 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
24
อ 25 ก.ค. 2017 7:40 pm โดย คูกูหาที่เกีดบ่อได้ ต้องทำใจรอเนื้อคู่
รบกวนสอบถามปัญหา SSL กับ woocommerce theme หน่อยครับ
โดย permchai อ 25 ก.ค. 2017 6:55 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
3
28
อ 25 ก.ค. 2017 6:55 pm โดย mindphp
รบกวนสอบถามเกี่ยวกับ SSL กับ woocommerce ครับ
โดย permchai อ 25 ก.ค. 2017 6:51 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
0
19
อ 25 ก.ค. 2017 6:51 pm โดย permchai