มหาวิทยาลัยอุบลราชธานี
Ubon Ratchathani University
  www.ubu.ac.th   |   UBU Blog
สมัครเข้าใช้งาน    |   เข้าสู่ระบบ    
Export mysql database 
โพสโดย บรรชา ไพอุปรี     วันที่ 9 กันยายน 2560 , 09:29:05 น.
หมวด : IT , เทคโนโลยี , มีผู้อ่านแล้ว 56 ครั้ง
  

Export mysql database [PHP code]

<?php
$userdb='username'; //username ที่ท่านใช้เข้าฐานข้อมูล
$passdb='password'; //password เหมือนกัน
$namedb='dbname'; //ชื่อฐานข้อมูล ที่ท่านต้องการจะ export ออกมา

$dumppath='c:/appserv/mysql/bin/'; // สำหรับ path ใครที่ใช้ appserv ไม่ต้องเปลี่ยนนะครับ ใช้อันนี้เลยครับ

$exportdb='mysqldump -u'.$userdb.' -p'.$passdb.' '.$namedb.'>'.$namedb.'.xls'; //ตรง .xls จะเป็นไฟล์ excel ครับ ถ้าอยากได้ไฟล์อื่นๆ ท่านก็เปลี่ยนนามสกุลกันเองนะครับ ส่วนชื่อ $namedb จะเป็นชื่อเดียวกับชื่อฐานข้อมูล หากไม่พอใจก็เปลี่ยนได้ครับ

$t=$dumppath.$exportdb; // แค่เอาสตริงมาต่อกันเฉยๆ จริงๆ เอาสองบรรทัดด้านบนรวมกันเลยก็ได้ ไม่ต้องเขียนบรรทัดนี้ แต่ถ้าขี้เกียจ ก็ตามนี้ไปแหละกัน ^___^

echo shell_exec($t); //execute คำสั่ง command ที่เราเขียนมาจากด้านบนนั้นแหละ

echo "Export database [$namedb] complate <a href='$namedb.xls'>click download</a>"; //สร้างลิงค์เพื่อ download ไฟล์ที่ทำการ export ออกมา
?>

=================================

2.

<?php

function EXPORT_TABLES($host,$user,$pass,$name, $tables=false, $backup_name=false ){

$mysqli = new mysqli($host,$user,$pass,$name); $mysqli->select_db($name); $mysqli->query("SET NAMES 'utf8'");
$queryTables = $mysqli->query('SHOW TABLES'); while($row = $queryTables->fetch_row()) { $target_tables[] = $row[0]; } if($tables !== false) { $target_tables = array_intersect( $target_tables, $tables); }
foreach($target_tables as $table){
$result = $mysqli->query('SELECT * FROM '.$table); $fields_amount=$result->field_count; $rows_num=$mysqli->affected_rows; $res = $mysqli->query('SHOW CREATE TABLE '.$table); $TableMLine=$res->fetch_row();
$content = (!isset($content) ? '' : $content) . " ".$TableMLine[1]."; ";
for ($i = 0, $st_counter = 0; $i < $fields_amount; $i++, $st_counter=0) {
while($row = $result->fetch_row()) { //when started (and every after 100 command cycle):
if ($st_counter%100 == 0 || $st_counter == 0 ) {$content .= " INSERT INTO ".$table." VALUES";}
$content .= " (";
for($j=0; $j<$fields_amount; $j++) { $row[$j] = str_replace(" ","\n", addslashes($row[$j]) ); if (isset($row[$j])){$content .= '"'.$row[$j].'"' ; }else {$content .= '""';} if ($j<($fields_amount-1)){$content.= ',';} }
$content .=")";
//every after 100 command cycle [or at last line] ....p.s. but should be inserted 1 cycle eariler
if ( (($st_counter+1)%100==0 && $st_counter!=0) || $st_counter+1==$rows_num) {$content .= ";";} else {$content .= ",";} $st_counter=$st_counter+1;
}
} $content .=" ";
}
$backup_name = $backup_name ? $backup_name : $name."___(".date('H-i-s')."_".date('d-m-Y').")__rand".rand(1,11111111).".sql";
header('Content-Type: application/octet-stream'); header("Content-Transfer-Encoding: Binary"); header("Content-disposition: attachment; filename="".$backup_name."""); echo $content; exit;
}
?>

=================================

3.

<?php

backup_tables('localhost','root','','new_painting');

/* backup the db OR just a table */
function clean($str) {
if(@isset($str)){
$str = @trim($str);
if(get_magic_quotes_gpc()) {
$str = stripslashes($str);
}
return mysql_real_escape_string($str);
}
else{
return 'NULL';
}
}
function backup_tables($host,$user,$pass,$name,$tables = '*')
{

$link = mysql_connect($host,$user,$pass);
mysql_select_db($name,$link);

//get all of the tables
if($tables == '*')
{
$tables = array();
$result = mysql_query('SHOW TABLES');
while($row = mysql_fetch_row($result))
{
$tables[] = $row[0];
}
}
else
{
$tables = is_array($tables) ? $tables : explode(',',$tables);
}

//cycle through
foreach($tables as $table)
{
$result = mysql_query('SELECT * FROM '.$table);
$num_fields = mysql_num_fields($result);

$return = 'DROP TABLE '.$table.';';
$row2 = mysql_fetch_row(mysql_query('SHOW CREATE TABLE '.$table));
$return.= " ".$row2[1]."; ";

for ($i = 0; $i < $num_fields; $i++) 
{
while($row = mysql_fetch_row($result))
{
$return.= 'INSERT INTO '.$table.' VALUES(';
for($j=0; $j<$num_fields; $j++) 
{
$row[$j] = addslashes($row[$j]);
//$row[$j] = ereg_replace(" ","\n",$row[$j]);
//$row[$j] = preg_replace(" ","\n",$row[$j]);
$row[$j] = clean($row[$j]);

if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
if ($j
จัดการ
Buncha N. Piouparee < ?php
/*
* Restore MySQL dump using PHP

* (c) 2006 Daniel15
* Last Update: 9th December 2006
* Version: 0.2
* Edited: Cleaned up the code a bit. 
*
* Please feel free to use any part of this, but please give me some credit 

*/

// Name of the file
$filename = 'test.sql';
// MySQL host
$mysql_host = 'localhost';
// MySQL username
$mysql_username = 'root';
// MySQL password
$mysql_password = '';
// Database name
$mysql_database = 'test';

//////////////////////////////////////////////////////////////////////////////////////////////

// Connect to MySQL server
mysql_connect($mysql_host, $mysql_username, $mysql_password) or die('Error connecting to MySQL server: ' . mysql_error());
// Select database
mysql_select_db($mysql_database) or die('Error selecting MySQL database: ' . mysql_error());

// Temporary variable, used to store current query
$templine = '';
// Read in entire file
$lines = file($filename);
// Loop through each line
foreach ($lines as $line)
{
// Skip it if it's a comment
if (substr($line, 0, 2) == '--' || $line == '')
continue;

// Add this line to the current segment
$templine .= $line;
// If it has a semicolon at the end, it's the end of the query
if (substr(trim($line), -1, 1) == ';')
{
// Perform the query
mysql_query($templine) or print('Error performing query '<strong>' . $templine . '': ' . mysql_error() . '<br /><br />');
// Reset temp variable to empty
$templine = '';
}
}

?>
===========================================
4.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<title>Untitled Document</title>
</head>
<?
$FILE = fopen( "xxx.csv", "r"); //เปลี่ยนชื่อไฟล์ xxx.csv เป็น csv ที่เราสร้างขึ้นจาก excel
//ต้อง copy ไฟล์มาเก็บไว้ที่ path เดียวกับ Code นี้นะครับ
$data = fgetcsv( $FILE , 1024 );
$i=1;
do
{
if ($i == 1){
$data = fgetcsv( $FILE , 1024 );
$i++;
}
else{
$host="localhost"; 
$user="root"; //ใส่ user ของ DB ปกติน่าจะเป็น root
$password="xxxxxxxx";// ใส่ password
$dbname="db_xxxxx"; //แก้เป็น db ที่ต้องการ import เข้าไป
$conetion=mysql_connect($host,$user,$password) or die("ตาย ตาย ตาย ต่อ Host ไม่ติด ");
$db=mysql_select_db($dbname) or die("ต่อ DB ไม่ได้");
/* ตรงนี้เป็นความเชื่อส่วนตัวในการแก้ปัญหาภาษาไทย ด้านบนผมใช้ windows-874 ตรงผมใช้ tis620 ผมไม่เคยใช้ utf-8 เลย*/
mysql_query("SET character_set_results=tis620");
mysql_query("SET character_set_client='tis620'");
mysql_query("SET character_set_connection='tis620'");
mysql_query("collation_connection = tis620_thai_ci");
mysql_query("collation_database = tis620_thai_ci");
mysql_query("collation_server = tis620_thai_ci");
//แก้ your_table เอาค่า ฟิลด์ปกติมามาเขียนทั้งหมด
//จาก ตย. ผมมี sql ทั้งหมด 12 ฟิลด์ การเตียมไฟล์ตรงนี้ก็ใส่ไว้ที่หัว Excel ให้เหมือนกันตรงกันครับ
//สำคัญครับฟิลด์ต้องตรงกัน
// ค่าตัวแปรที่จะส่งก็เป็นตั้งแต่ array 0-11 ตามนั้นครับ
$sql="INSERT INTO your_table (id,card,pass,titleName,firstName,lastName,major,faculty,institute,uProvince,locate,status) VALUES ('$data[0]', '$data[1]', '$data[2]', '$data[3]', '$data[4]', '$data[5]', '$data[6]', '$data[7]', '$data[8]', '$data[9]', '$data[10]', '$data[11]');";

$dbquery=mysql_db_query($dbname,$sql);
mysql_close();
$data = fgetcsv( $FILE , 1024 );
$i++;
}}while ( !feof( $FILE ) );
echo "บันทึกได้";//จะรันอย่างไรคำว่า "บันทึกได้" จะโชว์ทุกครั้ง เพราะฉนั้นกำหนด ฟลิด์ของตารางตรงคิวรี่ให้ถูกไม่งั้นข้อมูลไม่เข้า
?>
<body>
</body>
</html>
แสดงความคิดเห็น
      เข้าสู่ระบบ
  - ต้องทำการกรอก username และ password ก่อน จึงจะทำการแสดงความคิดเห็นได้
- username และ password เป็นอันเดียวกับที่ใช้ในการ login internet ของมหาวิทยาลัยอุบลราชธานี
 

ค้นหา
 
  About Me
 
ชื่อ :  นายบรรชา ไพอุปรี
ตำแหน่ง :  นักวิชาการศึกษา
หน่วยงาน :  สำนักงานเลขานุการ
คณะ/สำนัก :  สำนักคอมพิวเตอร์
และเครือข่าย
จำนวนเรื่อง :  20
จำนวนผู้ชม :  20663
Blog :  buncha
  เรื่องย้อนหลัง
Event On Text Input
ตรวจสอบนามสกุลไฟล์ ก่อนทำการอัพโหลด
Export mysql database
ฟังก์ชั่น PHP ตรวจสอบปีงบประมาณ
การนับจำนวน textbox ในฟอร์ม
พื้นฐานเรียนรู้กับ คำสั่ง บน Linux
PHP กับฟังก์ชั่น บวก ลบวันที่ และเวลา
คำนวณหาจำนวนวัน ระหว่างวันแรก ถึง วันสุดท้าย
PHP คำนวณหาระยะห่างระหว่างวันที่
Export to CSV PHP Script
 
 
 
พัฒนาโดย สำนักคอมพิวเตอร์และเครือข่าย มหาวิทยาลัยอุบลราชธานี
© Copyright 2010 - 2015 UBON RATCHATHANI UNIVERSITY
สงวนลิขสิทธิ์ 2553 - 2558 มหาวิทยาลัยอุบลราชธานี