|
|
|
อยากได้โค้ด PHP Backup & Recovery Oracle database ครับ |
|
|
|
|
|
|
|
ถ้า php น่าจะต้องทำการ write เป็น text file ครับ โดย write เป็นพวก คำสั่ง sql statement
|
|
|
|
|
Date :
2012-03-26 06:21:27 |
By :
webmaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พอจะมีตัวอย่าง หรือบทเรียนที่เกี่ยวข้องไหมครับพี่วิน จะได้ลองนำมาศึกษาต่อดู
|
ประวัติการแก้ไข 2012-03-26 09:08:56
|
|
|
|
Date :
2012-03-26 09:07:57 |
By :
ทองมี |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แปลงเป็น PHP + Oracle + CSV ให้ครับ
Code (PHP)
<?
move_uploaded_file($_FILES["fileCSV"]["tmp_name"],$_FILES["fileCSV"]["name"]); // Copy/Upload CSV
$objConnect = oci_connect("myuser","mypassword","TCDB");
$objCSV = fopen($_FILES["fileCSV"]["name"], "r");
while (($objArr = fgetcsv($objCSV, 1000, ",")) !== FALSE) {
$strSQL = "INSERT INTO customer ";
$strSQL .="(CustomerID,Name,Email,CountryCode,Budget,Used) ";
$strSQL .="VALUES ";
$strSQL .="('".$objArr[0]."','".$objArr[1]."','".$objArr[2]."' ";
$strSQL .=",'".$objArr[3]."','".$objArr[4]."','".$objArr[5]."') ";
$objParse = oci_parse($objConnect, $strSQL);
$objExecute = oci_execute($objParse, OCI_DEFAULT);
}
fclose($objCSV);
oci_commit($objConnect);
echo "Upload & Import Done.";
?>
|
|
|
|
|
Date :
2012-03-26 09:33:12 |
By :
webmaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ส่วน backup
Go to : PHP Convert/Export MySQL To CSV
แปลงเป็น PHP + Oracle + CSV ให้ครับ
Code (PHP)
<?
$filName = "customer.csv";
$objWrite = fopen("customer.csv", "w");
$objConnect = oci_connect("myuser","mypassword","TCDB");
$strSQL = "SELECT * FROM CUSTOMER";
$objParse = oci_parse($objConnect, $strSQL);
oci_execute ($objParse,OCI_DEFAULT);
while($objResult = oci_fetch_array($objParse,OCI_BOTH))
{
fwrite($objWrite, "\"$objResult[CustomerID]\",\"$objResult[Name]\",\"$objResult[Email]\",");
fwrite($objWrite, "\"$objResult[CountryCode]\",\"$objResult[Budget]\",\"$objResult[Used]\" \n");
}
fclose($objWrite);
?>
|
|
|
|
|
Date :
2012-03-26 09:39:17 |
By :
webmaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อันนี้เป็น โค้ด Backup & Recovery ของ mysql อ่ะครับ
แต่พอจะประยุกค์มาเป็น Oracle ยังไม่ค่อยเข้าใจเท่าไร
คำสั่ง sql บางคำสั่งก็ใช้กับ Oracle ไม่ได้ เช่น SHOW TABLES,SHOW CREATE TABLE
ลอง ๆ ประยุกค์ให้หน่อยครับผม
Code (PHP)
<?php include("connect_db.php");
connect_db();
backup_tables('localhost','fio_fe','fe-2554','fio_forest_expenditure');
//get all table
function backup_tables($host,$user,$pass,$name,$tables = '*')
{
mysql_query("SET NAMES utf8") or die(mysql_error());
$link = mysql_connect($host,$user,$pass);
mysql_select_db($name,$link);
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);
}
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.= "\n\n".$row2[1].";\n\n";
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","\\n",$row[$j]);
if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
if ($j<($num_fields-1)) { $return.= ','; }
}
$return.= ");\n";
}
}
$return.="\n\n\n";
}
//save file
$name = 'db-backup-'.date(d).'-'.date(m).'-'.date(y).'-'.time().'.sql';
$handle = fopen($name,'w+');
fwrite($handle,$return);
fclose($handle);
header("Content-type: application/x-file-to-save");
header("Content-Disposition: attachment; filename=".$name);
@readfile($_REQUEST['name']);
$file = $name;
readfile($file);
unlink($file);
}
?>
|
ประวัติการแก้ไข 2012-03-27 01:07:43
|
|
|
|
Date :
2012-03-27 01:01:08 |
By :
aekkubz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองสร้างแล้วเอาไปรันใน Query ดูครับ
|
|
|
|
|
Date :
2012-03-27 06:36:18 |
By :
webmaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|