DelDard
سه شنبه 16 دی 1393, 19:26 عصر
سلام
من با کد زیر از یه تیبل بک اپ میگیرم
$table = 'members';
$return = null;
$db->exec("SET NAMES utf8");
$result = $db->prepare('SELECT * FROM '.$table);
$result->execute();
$num_fields = $result->columnCount();
$row2 = $db->prepare('SHOW CREATE TABLE '.$table);
$row2->execute();
$row2 = $row2->fetch(PDO::FETCH_NUM);
$return.= "\n\n".$row2[1].";\n\n";
while($row = $result->fetch(PDO::FETCH_NUM))
{
$return.= 'INSERT INTO '.$table.' VALUES(';
for($j=0; $j<$num_fields; $j++)
{
$row[$j] = addslashes($row[$j]);
$row[$j] = str_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
$file_name = substr(str_shuffle(md5(time())), 24).'.sql';
$handle = fopen(ROOT.'/back/'.$file_name,'w+');
fwrite($handle,$return);
fclose($handle);
فایل sql که به من میده چند خط اولش چنین چیزی هست
CREATE TABLE `members` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`date` varchar(30) NOT NULL,
`gender` varchar(10) NOT NULL,
`name` varchar(60) NOT NULL,
`family` varchar(60) NOT NULL,
حالا من که اینو از طریق phpmyadmin اپ میکن تو دیتابیسم که رو لوکال هست یه ارور بم میده با این معنی "چون تیبل ممبرز وجود داره نمیتونیم قبولش کنیم" که خوب طبیعی هم هست گویا. حالا سوال من اینه که اگه بخام هر بار که بکاپ میگیرم ریکورد های جدید رو به ریکورد هایی که قبلا گرفتم اضافه کنم باید چه کار کنم؟؟ یعنی منظورم اینه که اگه من هر بار از db یه بکاپ بگیرم و بعد db رو پاک کنم و دو باره وقتی db پر شد باز همین کار رو کنم و بعد تو لوکال همه این بکاپ ها (ریکوردها) رو بخام تو یه جدول واحد داشته باشم باس چی کار کنم؟؟
چی کار کنم که ریکورد ها رو از من بگیره و به انتهای جدول ممبرز اضافه کنه؟؟
پیشاپیش از راهنماییهاتون ممنونم
من با کد زیر از یه تیبل بک اپ میگیرم
$table = 'members';
$return = null;
$db->exec("SET NAMES utf8");
$result = $db->prepare('SELECT * FROM '.$table);
$result->execute();
$num_fields = $result->columnCount();
$row2 = $db->prepare('SHOW CREATE TABLE '.$table);
$row2->execute();
$row2 = $row2->fetch(PDO::FETCH_NUM);
$return.= "\n\n".$row2[1].";\n\n";
while($row = $result->fetch(PDO::FETCH_NUM))
{
$return.= 'INSERT INTO '.$table.' VALUES(';
for($j=0; $j<$num_fields; $j++)
{
$row[$j] = addslashes($row[$j]);
$row[$j] = str_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
$file_name = substr(str_shuffle(md5(time())), 24).'.sql';
$handle = fopen(ROOT.'/back/'.$file_name,'w+');
fwrite($handle,$return);
fclose($handle);
فایل sql که به من میده چند خط اولش چنین چیزی هست
CREATE TABLE `members` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`date` varchar(30) NOT NULL,
`gender` varchar(10) NOT NULL,
`name` varchar(60) NOT NULL,
`family` varchar(60) NOT NULL,
حالا من که اینو از طریق phpmyadmin اپ میکن تو دیتابیسم که رو لوکال هست یه ارور بم میده با این معنی "چون تیبل ممبرز وجود داره نمیتونیم قبولش کنیم" که خوب طبیعی هم هست گویا. حالا سوال من اینه که اگه بخام هر بار که بکاپ میگیرم ریکورد های جدید رو به ریکورد هایی که قبلا گرفتم اضافه کنم باید چه کار کنم؟؟ یعنی منظورم اینه که اگه من هر بار از db یه بکاپ بگیرم و بعد db رو پاک کنم و دو باره وقتی db پر شد باز همین کار رو کنم و بعد تو لوکال همه این بکاپ ها (ریکوردها) رو بخام تو یه جدول واحد داشته باشم باس چی کار کنم؟؟
چی کار کنم که ریکورد ها رو از من بگیره و به انتهای جدول ممبرز اضافه کنه؟؟
پیشاپیش از راهنماییهاتون ممنونم