How to use ADODB Librarry

เริ่มโดย Tee++;, 24 เมษายน 2007, 00:46:52

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

Tee++;

พอดีช่วงนี้ไปเจอ Library น่าสนใจมาตัวนึงเป็น Library ที่เอาไว้จัดการกับฐานข้อมูลหลายๆ ฐานข้อมูลเลย โดยใช้กับภาษา PHP นั้นก็คือ ADODB ข้อดีของ ADODB มีหลายๆอย่างด้วยกันเลยครับ

1. สามารถใช้กับฐานข้อมูลได้หลายชนิด
2. สามารถป้องกัน SQL Injection ได้อย่างวิเศษ
3. สามารถสร้าง Cache ได้ลดการใช้งานฐานข้อมูลอย่างหนักหน่วง
4. สามารถลดจำนวนโคดให้สั้นเหลือ กระจิ๋วเดียว
5. สามารถดึงผลลัพธ์ได้หลายรูปแบบ
6. มีการพัฒนาอย่างต่อเนื่อง ไม่ทอดทิ้งกัน
7. อื่นๆอีกมากมาย

วันนี้เอาเป็นเรื่องพื้นฐานก่อนนะครับ เป็นการ Connect แล้วก็คำสั่ง SELECT, INSERT, UPDATE, DELETE อย่างง่ายๆ


<?
// การ SELECT
include ('adodb.inc.php');
$DBConf = 'mysql://user:pwd@localhost/database';
$conn = &ADONewConnection($DBConf);
$debug = 1;

$sql = 'SELECT * FROM table WHERE field = ? ORDER BY ?';
$rs = $conn->Execute($sql, array ('cond', 'field'));
if (!$rs)
    print $conn->ErrorMsg();
else
    while (!$rs->EOF) {
        print $rs->fields[0]; $rs->MoveNext();
    }
$rs->close();
$conn->close();
?>



<?
// การ INSERT
$sql = 'SELECT * FROM table WHERE id = -1';
$rs = $conn->Execute($sql);
$record = array();
$record['field1'] = 'value1';
$record['field2'] = 'value2';
$insertSQL = $rs->GetInsertSQL($rs, $record);
$conn->Execute($insertSQL);
?>



<?
// การ UPDATE
$sql = 'SELECT * FROM table WHERE id = 40';
$rs = $conn->Execute($sql);
$record = array();
$record['field1'] = 'value1';
$record['field2'] = 'value2';
$updateSQL = $rs->GetUpdateSQL($rs, $record);
$conn->Execute($updateSQL);
?>



<?
// การ Delete
$sql = "DELETE FROM table WHERE id = ?";
$conn->Execute($sql, 40);
?>


นี่เป็นคำสั่งพื้นๆ ครับ จริงๆแล้วมีวิธีหดให้โคดสั้นลงอีกมากมายเช่นการ INSERT


<?
$record = array();
$record['field1'] = 'value1';
$record['field2'] = 'value2';
$insertSQL = AutoExecute('table', $record, 'INSERT');
?>


สรุปแล้วคือมันทำงานได้สมบูรณ์แบบเลยทีเดียวสำหรับเรื่องการจัดการ Database  ทั้งง่ายและสะดวกมากมาย มีคำสั่งให้ใช้เพียบ ลองหันมาพัฒนาโปรแกรมโดยใช้ร่วมไปกับ Library ตัวนี้ดูกันนะครับ แล้วจะมาต่อการใช้งานที่มัน Advance ขึ้นนะครับ

Download: http://adodb.sourceforge.net/

ปล. โคดข้างบนลองเอาไปรันตามแล้วไม่รู้จะมี Error มั้ยเพราะเขียนสดๆ เลยยังไงลองดูเอาเองนะ
[direct=http://laravel.in.th]Laravel in Thai[/direct]
[direct=http://jquerytips.com]jQueryTips by Tee++;[/direct]
[direct=https://www.facebook.com/jQueryTips]jQueryTips Page[/direct]
[direct=https://www.facebook.com/Laravel.in.th]Laravel in Thai Page[/direct]
[direct=https://twitter.com/Teepluss]Teepluss's Twitter[/direct]


ColdMoney

ใจจ้า สมกะเป็น programmer เลย มีไรใหม่ๆ มาให้เล่นเยอะเลยอ่ะ  :lol:
[direct=https://www.jumnong.com]รับจำนอง[/direct] [direct=https://burapasup.com]รับซื้อบ้าน[/direct] [direct=https://kadsan.com]สินค้าราคาถูก[/direct] [direct=https://checkcheap.com]เปรียบเทียบราคา[/direct]

Tee++;

อ้างถึงจาก: ColdMoneyใจจ้า สมกะเป็น programmer เลย มีไรใหม่ๆ มาให้เล่นเยอะเลยอ่ะ  :lol:

อิอิ ยังดีที่มีคนสนใจ นั้นมาต่อกันเรื่องการใช้ Adodb สร้าง Cache กันเลยนะครับ ไม่ยากๆ


$ADODB_CACHE_DIR = "adodb_cache"; // กำหนด Dir ที่จะเก็บ Cache
$sql = "SELECT * FROM table WHERE field = 1";
$rs = &$DB->CacheExecute(600, $sql);  // Execute และสร้าง cache เป็นเวลา 600 วินาที
if (!$rs) {
 print $DB->ErrorMsg();
}
else {
 while (!$rs->EOF) {
   print $rs->fields[0].' '.$rs->fields[1].'<BR>';
   $rs->MoveNext();  
 }  
 $rs->Close(); # optional
}
//$DB->CacheFlush($sql); // คำสั่งสำหรับ Clear Cache ถ้าต้องการ clear ทั้งหมดเอา $sql ออก

[direct=http://laravel.in.th]Laravel in Thai[/direct]
[direct=http://jquerytips.com]jQueryTips by Tee++;[/direct]
[direct=https://www.facebook.com/jQueryTips]jQueryTips Page[/direct]
[direct=https://www.facebook.com/Laravel.in.th]Laravel in Thai Page[/direct]
[direct=https://twitter.com/Teepluss]Teepluss's Twitter[/direct]


iamnewbies

มึน ครับ

ช่วงนี้ไม่อยากเขียนโปรแกรมเลย (ขี้เกียจ)

นึกยังไงก็ไม่ออก ว่าจะเขียนอะไร ยังไงดี
ุอิอิ  พลุบๆโพล่ๆ  เข้าๆออกๆ เสียวๆ

EThaiZone

อ่า เห้นพี่แนะนำผมหลายที แต่ไม่นึกจะคลั่งขนาดตั้งกระทู้ อิๆ  :lol:

ผมชอบตรงการสร้างแคช
หลายคนไม่รู้กันว่า
เวลาหลังจาก query แล้วพอมา fetch เป็น array
สามารถทำได้หนเดียว!
พอจะมีfetch ซ้ำ กลับไม่ได้ค่าอะไร
ต้อง query ใหม่อีกครั้งก่อน

ดังนั้นมันเหมาะมากเลยจอร์จ!  :lol:

Tee++;

อ้างถึงจาก: iamnewbiesมึน ครับ

ช่วงนี้ไม่อยากเขียนโปรแกรมเลย (ขี้เกียจ)

นึกยังไงก็ไม่ออก ว่าจะเขียนอะไร ยังไงดี

อย่างคุณเอก หัดแป๊บเดียวก็เป็นแล้วครับ ขนาดเพิ่งเริ่มเขียน ยังทำ Script มหากาฬย์ ได้เลย อีกนิดก็เชี่ยวแล้วล่ะครับ เขียนโปรแกรมไม่มีไรมาก แค่ หัดเขียนเยอะๆ ๆ ๆ ๆ เท่านี้เอง  :wink:

อ้างถึงจาก: EThaiZoneอ่า เห้นพี่แนะนำผมหลายที แต่ไม่นึกจะคลั่งขนาดตั้งกระทู้ อิๆ  :lol:

ผมชอบตรงการสร้างแคช
หลายคนไม่รู้กันว่า
เวลาหลังจาก query แล้วพอมา fetch เป็น array
สามารถทำได้หนเดียว!
พอจะมีfetch ซ้ำ กลับไม่ได้ค่าอะไร
ต้อง query ใหม่อีกครั้งก่อน

ดังนั้นมันเหมาะมากเลยจอร์จ!  :lol:

ตอนนี้ชอบมากอ่ะ มันทำงานสะดวกดี เขียนโปรแกรมเร็วขึ้นเยอะเลย ตรง Cache นี่ก็ชอบเหมาะมากๆ กับการเอามาทำ CMS พวก news/activities ต่างๆ ที่มีการ Add แล้วก็จบ พอ Edit ก็ Clear cache จากทาง Backend

ตัวนี้ยิ่งเอามารวมกับระบบ Cache ของ Smarty แล้วยิ่ง Perfect แทบไม่ต้องมีการดึง DB หรือคำนวนค่าใดๆ จาก โปรแกรมเลย ชอบอ่ะ  :P
[direct=http://laravel.in.th]Laravel in Thai[/direct]
[direct=http://jquerytips.com]jQueryTips by Tee++;[/direct]
[direct=https://www.facebook.com/jQueryTips]jQueryTips Page[/direct]
[direct=https://www.facebook.com/Laravel.in.th]Laravel in Thai Page[/direct]
[direct=https://twitter.com/Teepluss]Teepluss's Twitter[/direct]


Tee++;

----------------- Delete -------------------
[direct=http://laravel.in.th]Laravel in Thai[/direct]
[direct=http://jquerytips.com]jQueryTips by Tee++;[/direct]
[direct=https://www.facebook.com/jQueryTips]jQueryTips Page[/direct]
[direct=https://www.facebook.com/Laravel.in.th]Laravel in Thai Page[/direct]
[direct=https://twitter.com/Teepluss]Teepluss's Twitter[/direct]


Adsense4U

สุดยอดเซียนจริงๆ ครับ ขอคาราวะ

Tee++;

เอาล่ะมาต่อกันถึงความสามารถของ Library ตัวนี้ที่ทำให้เราเขียนโคดส่วนของ SQL ได้ง่ายขึ้นกันดีกว่าครับ คือ AutoExecute

$record['name'] = 'Tee'; // $_POST['name'];
$record['surname'] = 'Nice5'; // $_POST['surname'];
$record['age'] = '16';  :lol: // $_POST['age'];
$record['occupation'] = 'Programmer'; // $_POST['occupation'];

$insertSQL = $conn->AutoExecute('table', $record, 'INSERT');
// ค่า KEY ที่อยู่ใน $record จะเป็น Fields ของ Table ที่จะ Insert ข้อมูลลงไป


$updateSQL = $conn->AutoExecute('table', $record, 'UPDATE');
// ค่่า KEY ที่อยู่ใน $record จะเป็น Fields ของ Table ที่จะอัพเดท


ลองสังเกตุกันดูว่ามันต่างกันแค่ INSERT กับ UPDATE เองเพราะฉะนั้นเวลาเราเขียนโปรแกรมก้อาจเขียนเพียง

$command = ($act == 'add') ? 'INSERT' : 'UPDATE';
$executeSQL = $conn->AutoExecute('table', $record, $command);


เห็นมั้ยครับเขียนโคดครั้งเดียวได้กินหมดเลยทั้ง insert ทั้ง update ไม่ต้องเขียนกันยาวๆ นี่เป็นแค่ความสามารถ พื้น (มั่กๆ) ของ Library จริงๆมันทำงานได้มากกว่านี้เพียบเลย จะมาแนะนำต่อทีหลังนะครับ ส่วนวันนี้ขอลาไปเคลียร์งาน เคลียร์ชีวิต ก่อนล่ะ  :wink:
[direct=http://laravel.in.th]Laravel in Thai[/direct]
[direct=http://jquerytips.com]jQueryTips by Tee++;[/direct]
[direct=https://www.facebook.com/jQueryTips]jQueryTips Page[/direct]
[direct=https://www.facebook.com/Laravel.in.th]Laravel in Thai Page[/direct]
[direct=https://twitter.com/Teepluss]Teepluss's Twitter[/direct]


EThaiZone

เพ่.. ลืมผมไปแล้วใช่ปะ

อ้างถึง(18:43) EThaiZone.Com ::: พี่ตี๋ว่างปะครับ ?
(18:43) EThaiZone.Com ::: มีเรื่องอยากถามหน่อยครับ
(18:44) Tee++;: โทษทีครับ เดี๋ยวแป๊บนึงนะครับ
(18:44) EThaiZone.Com ::: ครับ
(18:44) Tee++;: พอดีจะส่งงานแล้ว  
(18:44) EThaiZone.Com ::: ครับ
(18:47) Tee++; ออฟไลน์แล้ว

:lol:

[EDIT] ไม่ถามแล้ว พึ่งตัวเองงับ อิๆ  หาทางออกได้แล้ว  :lol:

Tee++;

^
^
^
อุ อุ โทษทีอ่ะ ลืมไปเลยพอดีตอนนั้ยุ่งจัด  :lol:

ย่อภาพยังไงมันก็ต้องใช้ GD อ่ะ อาจจะจะทำขอบให้ภาพโดยการ ทำแบบนี้

     #ขอบมนขาวบน
ImageLine($dst_img, 0,0,3,0, $white);
ImageLine($dst_img, ($new_w-4),0,$new_w,0, $white);
ImageLine($dst_img, 0,1,1,1, $white);
ImageLine($dst_img, ($new_w-2),1,$new_w,1, $white);
ImageLine($dst_img, 0,2,0,2, $white);
ImageLine($dst_img, ($new_w-1),2,$new_w,2, $white);
ImageLine($dst_img, 0,3,0,3, $white);
ImageLine($dst_img, ($new_w-1),3,$new_w,3, $white);
#ขอบมนขาวล่าง
ImageLine($dst_img, 0,($new_h-1),3,($new_h-1), $white);
ImageLine($dst_img, ($new_w-4),($new_h-1),$new_w,($new_h-1), $white);
ImageLine($dst_img, 0,($new_h-2),1,($new_h-2), $white);
ImageLine($dst_img, ($new_w-2),($new_h-2),$new_w,($new_h-2), $white);
ImageLine($dst_img, 0,($new_h-3),0,($new_h-3), $white);
ImageLine($dst_img, ($new_w-1),($new_h-3),$new_w,($new_h-3), $white);
ImageLine($dst_img, 0,($new_h-4),0,($new_h-4), $white);
ImageLine($dst_img, ($new_w-1),($new_h-4),$new_w,($new_h-4), $white);


^
^
อาจมีวิธีที่ถึกน้อยกว่านี้

หรือใช้ CSS มาใช้ Crop รูปภาพให้พอดีโดยคำสั่ง

style="width: 200px; overflow: hidden"


ส่วนเรื่อง ImageMagick วิธีลงเวบมันมีนะ แต่ก็ไม่ค่อยรู้หรอกเพราะปกติงานนี้ให้ Admin ทำ อิอิ

อ้างถึงhttp://www.imagemagick.org/script/install-source.php#unix
[direct=http://laravel.in.th]Laravel in Thai[/direct]
[direct=http://jquerytips.com]jQueryTips by Tee++;[/direct]
[direct=https://www.facebook.com/jQueryTips]jQueryTips Page[/direct]
[direct=https://www.facebook.com/Laravel.in.th]Laravel in Thai Page[/direct]
[direct=https://twitter.com/Teepluss]Teepluss's Twitter[/direct]


EThaiZone

อ่า ขอบคุณครับ  :D

อยากเคีลยร์งานที่รับมาให้เสร็จทั้งหมดเลย
จะได้ทำของตัวเองเต็มที่
(รู้งี้ไม่รับมาทำดีก่า T-T)

Pipo

เยี่ยมครับ ขอบคุณมาก

Tee++;

คนสนใจน้อยเหลือเกิน เพราะงั้นที่เหลือ ลองใช้พี่ Google หาเอาแล้วกันนะ :lol:

แนะนำให้ 1
อ้างถึงhttp://www.exzilla.net/docs/adodb/adodb-mysql-tutorial.php
[direct=http://laravel.in.th]Laravel in Thai[/direct]
[direct=http://jquerytips.com]jQueryTips by Tee++;[/direct]
[direct=https://www.facebook.com/jQueryTips]jQueryTips Page[/direct]
[direct=https://www.facebook.com/Laravel.in.th]Laravel in Thai Page[/direct]
[direct=https://twitter.com/Teepluss]Teepluss's Twitter[/direct]


toony

ไม่ใช่ไม่น่าสนใจนะ  แต่ ดูไม่ค่อยรู้เรื่อง สงสัย กว่าจะเข้าใจ  คงอีกนาน  โลกของโปรแกรมเมอร์   :lol:  :lol:

cancanx

:P  ไม่รู้จะเริ่มตรงไหนเหมือนกัน ไอ้ php เนี่ย

ฮู้ววว สงสัย หนทางนี้ยังอีกยาวว

EThaiZone

อ้างถึงจาก: Tee++;คนสนใจน้อยเหลือเกิน เพราะงั้นที่เหลือ ลองใช้พี่ Google หาเอาแล้วกันนะ :lol:

แนะนำให้ 1
อ้างถึงhttp://www.exzilla.net/docs/adodb/adodb-mysql-tutorial.php

เวลาทำ adsense คงไม่ถึงกับใช้ adodb อะครับ
เลยไม่ค่อยมีคนสนใจสักเท่าไรอะ

ผมเองยังไม่ใช่ mysql สักนิดเลย
เพราะเวลาจะทำเว็บจะได้ไม่ต้องเช็ต mysql ให้  :D

EixQzUnG

<?
// การ INSERT
$sql = 'SELECT * FROM table WHERE id = -1';
$rs = $conn->Execute($sql);
$record = array();
$record['field1'] = 'value1';
$record['field2'] = 'value2';
$insertSQL = $rs->GetInsertSQL($rs, $record);
$conn->Execute($insertSQL);
?>


ทำ ไมต้อง select มาก่อนอะ คับ งง แอบ งง นะเนีย

ถ้าเราจะ Insert แบบเดิมได้มะ - -''
$conn->Execute("insert  into test (id,text) values ('',''$text)"); ยัดเข้าไปตรงๆเลยอะ

แบบ ข้างบน นู๋ งง   :P :P :P ถ้าจะให้ดีแปล อธิบาย ให้ฟังหน่อยจิ หลักการมัน นะ ขอบคุณครับ

workshop

นอกเรื่องหน่อยครับ
เดี๋ยวนี้คุณตี๋ไม่เข้าเวปเลยเหรอครับ
ไม่เห็นเลย
คนเก่าหายไปเรื่อยๆ เฮ้ออออออ :-X

mixture

กระทู้นี้เจ๋งดีแฮะ
[direct=http://moomak.wordpress.com]จิ[/direct]