การ export ข้อมูลจากฐานข้อมูล

การส่งออกข้อมูลจากฐานข้อมูลเป็นไฟล์ (หรือการ backup ข้อมูล)

<?
  //ค่ากำหนดของ ฐานข้อมูล
  $host="localhost";
  $username="root";
  $password="";
  $dbname="mydb";
  //ชื่อตารางที่ต้องการส่งออก
  $table="exam3";
  
  header("Content-Type: application/force-download");
  header("Content-Disposition: attachment; filename=$table.sql");
  
  //ไดเรคทอรี่ที่เก็บไฟล์ที่ส่งออก ต้องมี / ปิดท้าย
  //และต้องปรับ chmod ให้เป็น 777 ด้วย
  $url=$_SERVER['DOCUMENT_ROOT']."/tmp/";
  
  //ลบไฟล์เดิมทิ้ง (ถ้ามี)
  if (file_exists("$url$table.sql")) unlink("$url$table.sql");

  //เชื่อมต่อกับ MySQL
  $connect= mysql_connect($host, $username, $password) or die("ไม่สามารถเชื่อมต่อฐานข้อมูลได้");
  $db=mysql_select_db($dbname) or die("ฐานข้อมูลไม่ถูกต้อง");

  $sql="SELECT * FROM $table INTO OUTFILE '$url$table.sql'";
  $query=mysql_query($sql) or die("ไม่สามารถส่งออกฐานข้อมูลได้");

  //ยกเลิกการติดต่อกับฐานข้อมูล
  mysql_close($connect);
  
  @readfile("$url$table.sql");
?>

เมื่อ run โค้ดนี้ จะมี dialog ถามว่าจะให้ save ไฟล์ไว้ที่ไหนนะครับ

อย่าลืมสร้าง ไดเร็คทอรี่ tmp ไว้ที่ root ของระบบ และปรับ chmod ให้เป็น 777 ด้วย
ผู้เขียน goragod โพสต์เมื่อ 02 เม.ย. 2551 เปิดดู 6,994 ป้ายกำกับ PHPSQL
^