การใช้ฐานข้อมูล PostgreSQL ร่วมกับภาษา Ruby เป็นที่นิยมในโลกการพัฒนาโปรแกรม โดยเฉพาะในแอปพลิเคชันที่ต้องการจัดการข้อมูลได้อย่างปลอดภัยและมีประสิทธิภาพ ในบทความนี้ เราจะมาเรียนรู้ถึงการใช้ `SELECT` จาก table ใน PostgreSQL โดยใช้ prepared statement ซึ่งเป็นเทคนิคที่ช่วยเพิ่มความปลอดภัยและลดปัญหาการโจมตีจาก SQL Injection
Prepared statement คือ คำสั่ง SQL ที่ถูกเตรียมไว้ล่วงหน้า ทำให้เราสามารถส่งคำสั่ง SQL พร้อมค่า parameters แทนที่จะแทรกค่าลงไปในคำสั่ง SQL ตรงๆ มีข้อดีหลายประการ ได้แก่
- ความปลอดภัย: ลดโอกาสการเกิด SQL Injection ได้ - ประสิทธิภาพ: ใช้การคอมไพล์คำสั่ง SQL เพียงครั้งเดียว ทำให้รันคำสั่ง SQL ได้เร็วขึ้นเมื่อใช้ซ้ำ - ความสะดวก: ลดความยุ่งยากในโค้ด โดยเราสามารถแยกคำสั่ง SQL ออกจากค่าที่ส่งไปได้
ก่อนที่เราจะเริ่มต้นกัน ต้องตรวจสอบว่าจัดเตรียม environment ที่เหมาะสมแล้ว สถานที่ที่เราใช้กันมากก็คือ Ruby on Rails แต่ว่าเราจะทำตัวอย่างแบบ standalone Ruby script กันเพื่อให้เข้าใจและเห็นภาพง่ายยิ่งขึ้น
1. ติดตั้ง PostgreSQL: หากยังไม่มี ให้ติดตั้ง PostgreSQL บนเครื่องคุณ 2. ติดตั้ง Gem: ให้ติดตั้ง gem ที่ชื่อว่า `pg` ใน Terminal หรือ Command Line ด้วยคำสั่ง
ในตัวอย่างนี้ เราจะสร้างไฟล์ Ruby ที่ทำการเชื่อมต่อกับฐานข้อมูล PostgreSQL และทำการ Select ข้อมูลจากตารางที่เรามีอยู่
เตรียมสร้างฐานข้อมูลและตาราง
ก่อนอื่น เราจะทำการสร้างฐานข้อมูลและตารางสำหรับตัวอย่างของเรา
โค้ดในภาษา Ruby
หลังจากที่เราสร้างฐานข้อมูลและตารางเสร็จสิ้นแล้ว มาเริ่มเขียนโค้ดกันเลยดีกว่า
อธิบายการทำงานของโค้ด
1. เชื่อมต่อไปยังฐานข้อมูล: เราใช้ `PG.connect` เพื่อเชื่อมต่อไปยังฐานข้อมูล `example_db` 2. เตรียม prepared statement: เราใช้ `conn.prepare` เพื่อเตรียมคำสั่ง SQL ที่ต้องการ โดยใช้พารามิเตอร์ `$1` 3. รับค่าจากผู้ใช้: เรารับค่าชื่อผู้ใช้จากผู้ใช้ผ่าน `gets.chomp` 4. exec_prepared: ทำการรันคำสั่ง SELECT โดยส่งค่าเป็น array 5. แสดงผลลัพธ์: แสดงผลข้อมูลหากพบข้อมูลจากฐานข้อมูล หากไม่พบจะแสดงข้อความว่าไม่มีข้อมูล
การใช้ Prepared Statement เป็นวิธีการที่สำคัญในการป้องกันการโจมตีจาก SQL injection โดยเฉพาะในแอปพลิเคชันที่รับข้อมูลจากผู้ใช้ เช่น เว็บแอปพลิเคชันที่ให้ผู้ใช้ส่งข้อมูล เช่น การลงทะเบียนหรือเข้าสู่ระบบ การใช้ Prepared Statement ช่วยให้มั่นใจได้ว่าข้อมูลที่ถูกจัดการจะไม่ถูกโจมตีหรืออ่านโดยไม่ตั้งใจ
ตัวอย่าง Use Case มีหลากหลาย อาทิเช่น:
- การจัดการผู้ใช้: แอปพลิเคชันการจัดการสมาชิกออนไลน์ที่ต้องการค้นหาข้อมูลผู้ใช้ - ระบบคำสั่งซื้อ: อีคอมเมิร์ซที่ผู้ใช้สามารถค้นหาสินค้าจากฐานข้อมูล - ระบบการบันทึก: ระบบที่เก็บบันทึกการใช้งาน โดยต้องค้นหากิจกรรมของผู้ใช้
การใช้ PostgreSQL กับภาษา Ruby ผ่าน Prepared Statement เป็นทางเลือกที่ดีในพัฒนาแอปพลิเคชันที่ต้องการความปลอดภัยและประสิทธิภาพ มีการจัดการกับข้อมูลจำนวนมากอย่างถูกต้อง ช่วยให้โค้ดสะอาดและดูแลรักษาได้ง่ายขึ้น
หากคุณสนใจเรียนรู้เพิ่มเติมเกี่ยวกับการเขียนโปรแกรมและการใช้ PostgreSQL โดยเฉพาะใน Ruby อย่าลืมที่จะเข้าไปศึกษาที่ EPT อันเป็นโรงเรียนสอนโปรแกรมที่มีความเชี่ยวชาญด้านนี้ คุณสามารถนำความรู้ไปประยุกต์ใช้ในงานจริงได้อย่างมีประสิทธิภาพ!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
Tag ที่น่าสนใจ: java c# vb.net python c c++ machine_learning web database oop cloud aws ios android
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM