Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > เรื่อง transaction ส่วนของการซื้อขายจำเป็นต้องมี คำสั่ง commit กับ rollback ไหมค่ะ



 

เรื่อง transaction ส่วนของการซื้อขายจำเป็นต้องมี คำสั่ง commit กับ rollback ไหมค่ะ

 



Topic : 036276



โพสกระทู้ ( 217 )
บทความ ( 0 )



สถานะออฟไลน์




อยากถามพี่ที่เก่งๆคะว่า

ส่วนของการซื้อขายจำเป็นต้องมี คำสั่ง commit กับ rollback ไหมค่ะ

ถ้าไม่มีอ่ะ เราสามารถเก็บไว้ใน session ไว้ แล้วพอทำการซื้อขายไรเสร็จเรียบร้อยแล้ว

เราค่อย insert ลงทีเดียวได้ไหมค่ะ

ช่วยอธิบายให้หนูเคลียร์ๆหน่อยค่ะ

ขอบคุณค่ะ



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2009-12-27 23:13:55 By : SAUACTH View : 2034 Reply : 8
 

 

No. 1



โพสกระทู้ ( 468 )
บทความ ( 0 )



สถานะออฟไลน์


อยากถามพี่ที่เก่งๆคะว่า


อืม เล่นตัดกำลังของคนที่มีความสามารถน้อยเลยน่ะ
ถึงว่ากระทู่ไม่ลัยเลย 555+ แซวเล่นอ่ะ

คำสั่ง commit กับ rollback






Date : 2009-12-27 23:54:20 By : parita
 


 

No. 2

Guest


ตั้งแต่เคยเขียน PHP มายังไม่เคยเจอคำสั่งนี้เลย ... มันมีด้วยเหรอนี่
Date : 2009-12-28 01:24:04 By : ATOM
 

 

No. 3



โพสกระทู้ ( 1,127 )
บทความ ( 2 )



สถานะออฟไลน์


commit กับ rollback

เป็นชื่อของตัวแปรหรือเปล่าครับ
Date : 2009-12-28 09:29:22 By : iieszz
 


 

No. 4



โพสกระทู้ ( 217 )
บทความ ( 0 )



สถานะออฟไลน์


คนที่เคยเขียน php แบบ e-commerce อ่ะค่ะ

เคยใช้ คำสั่ง commit rollback ไหมคะ
Date : 2009-12-28 09:55:00 By : SAUACTH
 


 

No. 5



โพสกระทู้ ( 875 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

Rollback นึกว่า ห้าง Lotus เสียอีก แซวเล่นครับ

//commit = ถ้าไม่มีความผิดพลาดจะยอมรับคำสั่ง sql ทั้งหมดในการสั่งให้ transaction
//rollback = ตรงกันข้าม ถ้ามีความผิดพลาดหรือไม่เป็นไปตามเงื่อนไขข้อใดข้อหนึ่งก็จะ ไม่ทำ

ใช้ commit, rollback ก็ดีนะปลอดภัยดีสำหรับการเช็คความผิดผลาดก่อนทำรายการ transaction

Code (PHP)
$sql_01= "insert into customer (id,c_name,c_address) valuse ('001', 'มาริโอ้', 'ลาดพร้าว') ";

$sql_02= "insert into product(id, p_name, p_type) valuse ('008','ปากกา','เครื่องเขียน') ";

if(!mysql_query($sql_01,$link){
   $flag_complete = false;
}
if(!mysql_query($sql_02,$link){
   $flag_complete = false;
}

if($flag_complete){
    mysql_query("COMMIT", $link);
    echo " ทำรายการสำเร็จทั้งสองรายการ ";
}else{
    mysql_query("ROLLBACK", $link);
    echo "ทำรายการไม่สำเร็จ ระบบจะยกเลิกทั้งสองรายกายที่คุณทำที่ผ่านมา ";
}


// เพื่อความแน่นอน ส่วนตัวผมจะ เช็คด้วย commit, rollback ครับ
// ปกติ MySQL น่าจะ lock process ให้อยู่แล้วนะกรณีที่เราจะทำรายการ
// ท่านอื่นมีความเห็นอย่างไรแนะด้วยครับ
Date : 2009-12-28 10:24:27 By : peterxp
 


 

No. 6



โพสกระทู้ ( 217 )
บทความ ( 0 )



สถานะออฟไลน์


แล้วถ้า เก็บข้อมูลทุกอย่างไว้ในตัวแปร session ละคะ

แล้วก็ทำทุกอย่างให้เสร็จหมดแล้วค่อย นำตัวแปรมาเก็บใน DB ได้ไหมคะ
Date : 2009-12-28 10:32:07 By : SAUACTH
 


 

No. 7



โพสกระทู้ ( 1,528 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


PHP MySQL Transaction (Begin,Commit,RollBack)
Date : 2009-12-28 10:33:58 By : Sek-Artdrinker
 


 

No. 8

Guest


** มันเป็นเรื่องของวิธีจัดการมากกว่านะผมว่า **
จะใช้ไม่ใช้ขึ้นอยู่กับเราอ่ะ
การทำ transaction ไม่ใช่ว่านึกอยากใช้ก็ใช้นะครับ ต้องตรวจสอบฐานข้อมูลที่คุณใช้อยู่ด้วยว่า support การทำ transaction หรือเปล่า(แต่ส่วนใหญ่ database ปัจจุบันจะรองรับหมด) เช่น Access รุ่นเก่า, ไฟล์พวก *.db* ซึ่งถ้า database ที่ใช้ไม่รองรับ(support) ถึงใช้ไปอาจะไม่มีไรเกิดขึ้น **แต่ผมว่ามันน่าเจอ error ไปเลย
*** พึงระลึกไว้เสมอว่า ถ้าเราใช้ transaction ไม่ว่าจะกับ database อะไรก็ตามข้อมูลจะยังอยู่ที่ memory ของเครื่องเราจนกว่า จะ commit หรือ rollback

การทำ transaction จะมีผลหลังจากเราใช้ query command ประเภท insert, update, delete แล้วเราจะสามารถ
commit = ขอเรียกว่ายืนยันการบันทึกแล้วกัน ซึ่งหลังจาก commit แล้วก็จะถือว่าข้อมูลสมบูรณ์อยู่บนฐานข้อมูลแล้ว
rollback = ยกเลิกผลของคำสั่ง 3 คำสั่งดังที่บอกไปแล้ว

จะเห็นว่ามันเป็นเหมือนกฏ กติกาของการทำงานกับข้อมูล เพื่อให้ผู้ใช้ยืดหยุ่น ลองดูตัวอย่างนี้ db เป็น oracle นะครับทำผ่าน sqlplus แล้วกันเห็นภาพกันไปเลย เพราะมันจะบังคับทำ transaction ไม่ commit data ไม่เกิด หุหุ
Quote:
Boss : เอ่อ นายคนนั้นน่ะ ใช้ query command insert เป็นหรือเปล่า ช่วยเพิ่มข้อมูลนี้ให้ผมหน่อย ผมต้องการเพิ่มคำสั่งการทำงานให้กับสายการผลิตเดี๋ยวนี้เลย
นายคนนนั้น : อ้อครับ เป็นครับ มีข้อมูลว่าอะไรบ้างครับเดี๋ยวผมเพิ่มให้
Boss : โอเค ข้อมูลตามนี้เลยนะ
นายคนนนั้น : หลังจากพิมพ์ query command อันแสนยืดยาวเสร็จ เนื่องจากมีหลาย column มาก
และได้กดปุ่มรันคำสั่งไปเรียบร้อยแล้วนั้น กำลังจะพิมพ์ commit เพื่อยืนยันข้อมูลพอดี พลันได้ยินเสียงนึงตะโกนมาแต่ไกล
Boss : นายคนนั้นน่ะ ที่ผมสั่งเมื่อกี๊ ยกเลิกนะ ทางต่างประเทศเค้า cancel order กระทันหัน บอกจะไปหากิ๊กแทน -*-
นายคนนนั้น : อ่ะจึ๊ย เกือบไปแล้วไม๊ล่ะท่าน ตกลงครับผมจะ rollback ข้อมูลที่ insert เมื่อกี๊ครับ
ว่าแล้วก็รีบลบคำสั่ง commit ที่พิมพ์ตะกี๊ออก แล้วเปลี่ยนเป็น rollback แทนแล้วรีบรันคำสั่งทันที
นายคนนนั้น : เรียบร้อยแล้วครับ Boss
Boss : ขอบใจมาก เกือบต้องเสียของในการผลิตไปซะแล้ว


กับอีกตัวอย่าง อันนึ้ทำกับข้อมูลผ่านโปรแกรมที่พัฒนาขึ้นมาเอง ไม่ได้ใช้ query command โดยตรง จำลองโดยใช้สถานการณ์แบบเดียวกับตัวอย่างแรกนะครับ
Quote:
นายคนนนั้น : กริ๊งงงงง แกร๊กกกๆๆ สวัสดีครับผม นายคนนั้น รับสายครับ
Boss : ผมต้องการเพิ่มคำสั่งการทำงานให้กับสายการผลิตเดี๋ยวนี้เลย คุณช่วยเพิ่ม config เข้าไปในระบบสายการผลิตด้วยนะ ผมจะส่งข้อมูลไปให้
นายคนนนั้น : อ้อครับ ได้เลยครับท่าน หลังจากได้รับข้อมูลแล้วผมจะรีบทำให้เสร็จใน 5นาทีครับ
Boss : โอเค ดีมากผมส่งข้อมูลไปและตามนั้นเลยนะ
นายคนนนั้น : ก๊อกๆๆ แก๊กๆๆ อ่ะ save เสร็จและ เดี๋ยวรอให้ครบ 5 นาทีก่อนตามที่บอก
แล้วค่อยโทรแจ้งแกแล้วกัน หุหุ
นายคนนนั้น : กริ๊งงง... (อ่ะใครโทรมาอีกและ) สวัสดีครับผม นายคนนั้น รับสายครับ
Boss : อ้อ นายคนนั้นใช่ป่ะ ที่ผมสั่งเมื่อกี๊ ทำเสร็จหรือยัง
นายคนนนั้น : (ง่ะ Boss = =' โทรมาเร็วกว่าที่บอกซะงั้น) ครับๆ เสร็จพอดีเลยครับ
Boss : อ่ะเหรอ ทำงานเร็วดีนี่เราน่ะ แต่ขอโทษทีนะ ทางต่างประเทศเค้า cancel order กระทันหัน บอกจะไปหากิ๊กแทน -*-
นายคนนนั้น : ซะงั้น ได้ครับท่าน คลิกๆๆ กิ๊กๆๆ (เลือกข้อมูลที่พึ่งเพิ่มไปตะกี๊) ผมลบเลยนะครับ
Boss : อืม ลบได้เลย
นายคนนนั้น : เรียบร้อยแล้วครับ Boss
Boss : ขอบใจมาก ดีนะระบบที่คุณออกแบบไว้ จะตรวจสอบ config ใหม่ทุกๆ ครึ่งชั่วโมง
นี่เราลบข้อมูลออกไปก่อน เกือบต้องเสียของในการผลิตไปซะแล้ว


ครับ เป็นไงครับทั้งสองตัวอย่าง พอจะมองเห็นความต่างหรือเปล่าครับ ทีนี้ก็อยู่ที่คุณและ ว่าจะเลือกใช้หรือเปล่า

Date : 2009-12-28 10:52:29 By : salapao_codeman
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : เรื่อง transaction ส่วนของการซื้อขายจำเป็นต้องมี คำสั่ง commit กับ rollback ไหมค่ะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่