PDA

View Full Version : سوالی عجیب در مورد backup گیری از mysql



Mohammad Minaei
جمعه 14 مرداد 1384, 16:33 عصر
من نیاز مبرمی به کلاس backup از mysql داشتم. درست و حسابیش پیدا نشد گفتم خودم بنویسم. نوشتم و گند زدم!!
محتوای کلاس:


<?
class backup
{
//variables
var $host;
var $user;
var $pass;
var $name;
var $query;

//functions
function backup ($host,$user,$pass,$name)
{
$this-> host = $host;
$this-> user = $user;
$this-> pass = $pass;
$this-> name = $name;
}

function analyze ()
{
$con = mysql_connect ($this-> host,$this-> user,$this-> pass);
mysql_select_db ($this-> name);

$tables = mysql_list_tables ($this-> name);
while ($tablearray = mysql_fetch_array ($tables))
{
$table = $tablearray [0];

$result = mysql_query ("SELECT * FROM `$table`") or die (mysql_error ());
$numfields = mysql_num_fields ($result);

unset ($go);
$fieldquery = "";
while ($go < $numfields)
{
$fieldquery .= "`".mysql_field_name ($result,$go)."`";
if (!$go == $numfields) $fieldquery .= ",";
$go = $go + 1;
}

while ($row = mysql_fetch_row ($result))
{
$go = 0;
$valuequery = "";
while ($go < $numfields)
{
$valuequery .= "'".$row [$go]."'";
if (!$go == $numfields) $valuequery .= ",";
$go = $go + 1;
}

$this-> query .= "
INSERT INTO `".$table."` ($fieldquery)
VALUES ($valuequery);";
}


}

mysql_close ($con);
}

}
?>

محتوای فایل اجرا کننده کلاس:


<?

include "./backup.php";
$backup = new backup ("localhost","root","","backup");
$backup -> analyze ();
echo $backup-> query;

?>

محتوای بانک اطلاعاتی هم خیلی کمه. اما خروجی خیلی بلند می شه:



INSERT INTO `ll1` (`iu`,`jh`)
VALUES ('0000000001','545');
INSERT INTO `ll1` (`iu`,`jh`)
VALUES ('0000000002','hf');
INSERT INTO `tb1` (`id`,`text`)
VALUES ('0000000001','d');

به نظر شما چرا؟ (البته خدا کنه شما فاصلی ها رو ببینید و انجمن اتوماتیک اونا رو حذف نکنه. اما اگر فاصله ها رو نمی بینید باید بگم که بعد از هر isert... 1.5 خط space می ذاره. چرا؟)
از یه بانک خواستم backup بگیرم که گرفتم. بک آپی که phpMyAdmin گرفته بود شده بود 63 کیلو بایت. بک آپی که کلاس من گرفته بود شده بود 15 مگابایت!!!

اینو اگه کمک کنید ضرر نمی کنید. سیستم بنده میاد بالا!!

houtanal
جمعه 14 مرداد 1384, 17:02 عصر
یه دونه تو zend بود من یکم تغییرش دادم مشکلش حل شد.
اگه حال داری تکمیلترش کنی ، تموم که شد بذار اینجا بندگان خدا استفاده کنند

javad_hosseiny
شنبه 15 مرداد 1384, 08:05 صبح
من از این برنامه جهت پشتیبان گیری اطلاعاتم استفاده کردم ببین شاید بدردت خورد