SQLite เจอปัญหา database disk image is malformed
ผมเจอปัญหานี้ใน SQLite ครับ เพราะใช้คำสั่ง Insert Multi Record (เพิ่มข้อมูลหลายๆเรคคอร์ด โดยการวนลูป) พอจะแก้ไขข้อมูล ทำไม่ได้ขึ้นเออเร่อ database disk image is malformed ทำเอางงอยู่เหมือนกัน เป็นงานเร่งซะด้วย ทำให้ไม่สามารถแก้ไขหรือลบข้อมูลเดิมได้ แต่สามารถเพิ่มข้อมูลใหม่ แก้ไขข้อมูลใหม่ ลบข้อมูลใหม่ได้ ข้อมูลเก่าหรือข้อมูลเดิมที่เพิ่มเข้าก่อนหน้าจะเจอปัญหานี้ ไม่สามารถแก้ไขหรือลบได้
วิธีแก้ไขปัญหาก็เสิร์ทดูในเว็บต่างประเทศ เห็นเขาบอกให้ใช้คำสั่ง .mode insert ฯลฯ ก็ใช้ไม่ได้ผล ลองมาหมดทุกวิธี จนต้องคิดวิธีแก้ปัญหาด้วยตัวเอง คิดไปคิดมา วิธีแก้ปัญหามันช่างง่ายแสนง่าย เพราะไปเสียเวลากับวิธีแก้ปัญหาของคนอื่น
วิธีแก้ปัญหานะครับ
1.Export Database ที่มีปัญหาออกมาก่อน โดยใช้โปรแกรม SQLite Manager ซึ่งเป็น AddOn ของ Firefox ให้ติดตั้งให้เรียบร้อย วิธีใช้งานก็ดูตามนี้ http://php-for-ecommerce.blogspot.com/2013/06/sqlite-php.html ให้เปิด Database เจ้าปัญหาออกมาก่อน และไปที่เมนู Database เลือก Export Database ดังรูป
จะได้ไฟล์ .sql ให้เราSaveเก็บไฟล์ไว้ตรงไหนก็ได้ ดังรูป
2.เมื่อเราได้ไฟล์ .sql ที่เกิดจากการ Export Database แล้ว ให้สร้างไฟล์เปล่าๆขึ้นตั้งชื่ออะไรก็ได้ ให้มีนามสกุล .db ส่วนผมตั้งชื่อว่า dbbase.db
3.ให้เปิดไฟล์เปล่าๆ .db ที่สร้างในขั้นตอนที่ 2 ขึ้นมาในโปรแกรม SQLite Manager โดยไปที่ Connect Database
และให้เลือกเปิดไฟล์ .db ที่เราได้สร้างจากขั้นตอนที่ 2 ดังรูป
4.เมื่อเราเปิดไฟล์ที่เราสร้างจากขั้นตอนที่ 2 แล้ว ให้คลิกที่ปุ่ม Import ดังรูป
จะได้หน้าต่าง Import Wizard
ให้เลือกไฟล์ .sql ที่เราได้ Export จากขั้นตอนที่ 1 เข้ามา แล้วกด OK ให้กลับไปลบฐานข้อมูลเดิมทิ้งได้เลย และสามารถเปลี่ยนชื่อฐานข้อมูลตัวใหม่ที่เราสร้างให้เป็นชื่อเดิมของฐานข้อมูลเดิมได้ครับ เท่านี้เราก็จะได้ฐานข้อมูลเดิมที่ไม่มีปัญหากลับคืนมาแล้วครับ








ความคิดเห็น
แสดงความคิดเห็น