วันอังคารที่ 4 มิถุนายน พ.ศ. 2556

การใช้ฐานข้อมูล SQLITE ร่วมกับ PHP

     ตอนนี้ผมมีความคิดที่อยากลองนำฐานข้อมูล SQLITE มาใช้จัดเก็บข้อมูลในระบบแชทครับ ซึ่ง SQLITE เป็นฐานข้อมูลขนาดเล็ก เหมือนกับ MS-ACCESS นั้นแหละครับ แต่ข้อดีของมันคือ ฟรี ใช้ได้ไม่จำกัดระบบปฏิบัติการ และมีความสามารถใน การจัดเก็บและจัดการข้อมูลได้มีประสิทธิภาพ ในปริมาณข้อมูลที่มากกว่า MS-ACCESS ครับ
     ส่วนมากแล้วจะนิยมใช้ร่วมกับ การพัฒนาแอฟบนมือถือ เช่น android  เพื่อใช้จัดเก็บข้อมูลทั้งหมดที่ทำงานบนมือถือ เช่น การตั้งค่าต่างๆ ,ข้อมูลการโทรเข้า-ออก รายชื่อเบอร์โทรติดต่อ ฯลฯ รวมถึง Web Browser อย่างเช่น Firefox ก็ใช้ SQLITE จัดเก็บข้อมูลเหมือนกันนะครับ เช่น ประวัติการเข้าเว็บ, ที่คั้นหน้า , การตั้งค่าต่างๆ ฯลฯ PHP เองก็มี Class ที่สร้างเอาไว้ติดต่อกับ SQLITE อยู่ครับ เราสามารถเรียกใช้ได้เลยทันที

มาดูวิธีใช้งานแบบง่ายๆในแบบของผมกันเลยครับ

1.อันดับแรกให้ติดตั้ง Add on ของ Firefox ชื่อว่า SQLite Manager ตัวนี้ก่อน -> https://addons.mozilla.org/en-us/firefox/addon/sqlite-manager/

2.เมื่อติดตั้งเสร็จแล้วให้เปิดโปรแกรมตัวนี้ขึ้นมา โดยไปที่ เครื่องมือ >> SQLite Manager ดังรูป


3.เมื่อโปรแกรมแสดงขึ้นมา ให้เราสร้างฐานข้อมูล โดยไปที่เมนู Database >> New Database ดังรูป
3.ให้ใส่ชื่อฐานข้อมูล ตัวอย่างผมชื่อว่า db_test เมื่อกด ตกลง แล้วมันจะให้เราเลือกที่อยุ่จัดเก็บไฟล์ db_test.sqlite คุณสามารถเลือกที่จัดเก็บได้ตามต้องการ

4.เมื่อสร้างฐานข้อมูลสมบูรณ์แล้วเราจะได้ไฟล์ฐานข้อมูล (db_test.sqlite) ซึ่งจะจัดเก็บในโฟลเดอร์ที่คุณเลือก และในแสดงในโปรแกรม ดังรูป

                          

5.ต่อไปเราจะสร้างเทเบิลกับฟิลด์กันครับ โดยคลิกขวาที่ Tables (0) เลือก Create Table จะแสดงหน้าต่างดังรูป

ในขั้นตอนที่ 5 จะเห็นว่า ผมตั้งชื่อเทเบิล (Table Name) ว่า tbl_test และมีฟิลด์หรือคอลัมน์อยุ่ 3 ฟิลด์ คือ id , name , detail สำหรับ Data Type เจ้า SQLite จะไม่มีให้เรากำหนดขนาดครับ ซึ่งผมไม่รู้ว่าเป็นผลดีหรือผลเสียหรือปล่าวกับหน่วยความจำในเครื่องของเรา

การเชื่อมต่อกับ PHP

เราจะใช้ PDO ซึ่งเป็น Class ในการเชื่อมต่อกับฐานข้อมูลซึ่งรองรับ SQLite ด้วยครับ

1.คำสั่ง Connect ให้ใช้คำสั่งดังนี้ เช่น  $db = new PDO('sqlite:db/db_test.sqlite');
2.ปิดการ Connect ใช้คำสั่ง $db->NULL;
3.คำสั่งเกี่ยวกับการดึงข้อมูลมาแสดงผล ใช้คำสั่ง เช่น $sql=$db->query("SELECT * FROM tbl_test ");
4.เราค่าข้อมูลจากข้อ 3 มาวนลูป ใช้คำสั่ง ต้วอย่างเช่น
while($show=$sql->fetch()){
  echo $show['ชื่อฟิลด์'];
}
5.เพิ่ม/ลบ/แก้ไข ใช้คำสั่งเดียวกันคือ $db->exec("INSERT หรือ UPDATE หรือ DELETE");

ทั้งหมดก็มีแค่นี้แหละครับ อยาก Advancd มากกว่านี้ ให้ศึกษาจาก http://www.php.net/manual/en/class.pdo.php
















1 ความคิดเห็น :

  1. ไม่ระบุชื่อ24 พฤษภาคม 2558 17:00

    ไฟล์ชื่อ test.db กับ test.sqlite มันเหมือนกันไหมค่ะ

    ปัญหาที่พบคือ มันไม่ติดต่อกับ SQLite batabase ที่สร้างไว้
    นี่คือคำสั่งที่เขียนติดต่อ
    $conn = new PDO("sqlite:/db/db_test.sqlite");
    echo "Connected to database \n";

    ตอบลบ