Здравейте,
Опитвам се да си напиша скриптче, с което да извличам информацията от база данните, след което да запиша данните в текстов файл и при нужда да го импортна през PMA например (демек backup).
Докарах го до тук и блокирах..
Не е най-добрия вариант сигурно, но явно толкова са ми възможностите..
Пускам го за тест да дъмпне една от таблиците ми в база данните - ок, супер - извлича инфото и го запазва в файла без проблем, но при импорта PMA ми плюе
Заявката изглежда така
Надявам се да помогнете
благодаря предварително.
Опитвам се да си напиша скриптче, с което да извличам информацията от база данните, след което да запиша данните в текстов файл и при нужда да го импортна през PMA например (демек backup).
Докарах го до тук и блокирах..
Код:
<?php
date_default_timezone_set('Europe/Sofia');
$db_server = '127.0.0.1';
$db_name = 'test';
mysql_connect($db_server, 'root', NULL) or die (mysql_error());
mysql_select_db($db_name) or die (mysql_error());
function dumper($table = NULL)
{
global $db_server;
$db = 'test';
$dump = NULL;
if(empty($table))
{
$q1= mysql_query("SHOW TABLES FROM `" . $db . "`") or die (mysql_error());
while($r1 = mysql_fetch_assoc($q1))
{
$table = $r1['Tables_in_' . $db];
$dump .= 'DROP TABLE IF EXISTS `' . $table . '`;' . "\n";
$dump .= 'CREATE TABLE `hwreports`' . "\n" . '(' . "\n";
$q2 = mysql_query("SHOW COLUMNS FROM `" . $table . "`") or die (mysql_error());
while($r2 = mysql_fetch_assoc($q2))
{
$fieldName[] = $r2['Field'];
$extra = ($r2['Null'] == 'NO') ? 'NOT NULL' : 'NULL';
$extra .= (!empty($r2['Extra'])) ? ' ' . strtoupper($r2['Extra']) : NULL;
$primary .= (empty($primary) && $r2['Key'] == 'PRI') ? $r2['Field'] : NULL;
$implode1[] = sprintf(" `%s` %s %s", $r2['Field'], $r2['Type'], $extra);
$rr2[] = $r2;
}
$dump .= implode(",\n", $implode1);
$dump .= (!empty($primary)) ? ",\n" . ' PRIMARY KEY (`' . $primary . '`)' : NULL;
$dump .= "\n" . ');' . "\n\n";
unset($primary);
$q3 = mysql_query("SELECT * FROM `" . $table . "`") or die (mysql_error());
foreach($fieldName as $f2)
$rrr2[] = '`' . $f2 . '`';
$fields = implode(',', $rrr2);
while($r3 = mysql_fetch_assoc($q3))
{
foreach($r3 as $f3)
$rr3[] = '`' . $f3 . '`';
$values = implode(',', $rr3);
$dump .= "INSERT INTO `" . $table . "`(" . $fields . ") VALUES (" . $values . ");\n";
}
}
//echo $dump;
$fopen = fopen('dump.sql', 'w');
fputs($fopen, $dump);
fclose($fopen);
//print_r($rr2);
exit;
}
}
dumper();
?>
Не е най-добрия вариант сигурно, но явно толкова са ми възможностите..
Код:
MySQL said: Documentation
#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
Заявката изглежда така
Код:
DROP TABLE IF EXISTS `hwreports`;
CREATE TABLE `hwreports`
(
`uid` int(5) NOT NULL AUTO_INCREMENT,
`filename` varchar(64) NOT NULL,
`gamename` varchar(32) NOT NULL,
`gameid` varchar(16) NOT NULL,
`clienttag` varchar(8) NOT NULL,
`gametype` varchar(16) NOT NULL,
`gameoption` varchar(16) NOT NULL,
`gamecreated` varchar(64) NOT NULL,
`gamestarted` varchar(64) NOT NULL,
`gameended` int(10) NOT NULL,
`map` varchar(64) NOT NULL,
`mapauth` varchar(32) NOT NULL,
`mapsize` varchar(16) NOT NULL,
`tileset` varchar(16) NOT NULL,
`joins` int(2) NOT NULL,
`maxplayers` int(2) NOT NULL,
`host` varchar(16) NOT NULL,
`port` int(5) NOT NULL,
`p1name` varchar(32) NOT NULL,
`p1result` varchar(8) NOT NULL,
`p1rating` int(5) NOT NULL,
`p1num` varchar(8) NOT NULL,
`p1prob` varchar(8) NOT NULL,
`p1k` int(3) NOT NULL,
`p1adj` varchar(8) NOT NULL,
`p1race` varchar(8) NOT NULL,
`p1time` int(16) NOT NULL,
`p1scoreoverall` int(8) NOT NULL,
`p1units` int(8) NOT NULL,
`p1structures` int(8) NOT NULL,
`p1resources` int(8) NOT NULL,
`p1unitsscore` int(8) NOT NULL,
`p1produced` int(8) NOT NULL,
`p1killed` int(8) NOT NULL,
`p1lostu` int(8) NOT NULL,
`p1structuresscore` int(8) NOT NULL,
`p1constructed` int(8) NOT NULL,
`p1razed` int(8) NOT NULL,
`p1losts` int(8) NOT NULL,
`p1resourcesscore` int(8) NOT NULL,
`p1gas` int(8) NOT NULL,
`p1minerals` int(8) NOT NULL,
`p1spent` int(8) NOT NULL,
`p2name` varchar(32) NOT NULL,
`p2result` varchar(8) NOT NULL,
`p2rating` int(5) NOT NULL,
`p2num` varchar(8) NOT NULL,
`p2prob` varchar(8) NOT NULL,
`p2k` int(3) NOT NULL,
`p2adj` varchar(8) NOT NULL,
`p2race` varchar(8) NOT NULL,
`p2time` int(16) NOT NULL,
`p2scoreoverall` int(8) NOT NULL,
`p2units` int(8) NOT NULL,
`p2structures` int(8) NOT NULL,
`p2resources` int(8) NOT NULL,
`p2unitsscore` int(8) NOT NULL,
`p2produced` int(8) NOT NULL,
`p2killed` int(8) NOT NULL,
`p2lostu` int(8) NOT NULL,
`p2structuresscore` int(8) NOT NULL,
`p2constructed` int(8) NOT NULL,
`p2razed` int(8) NOT NULL,
`p2losts` int(8) NOT NULL,
`p2resourcesscore` int(8) NOT NULL,
`p2gas` int(8) NOT NULL,
`p2minerals` int(8) NOT NULL,
`p2spent` int(8) NOT NULL,
`p1normalrecord` varchar(32) NOT NULL,
`p1ladderrecord` varchar(32) NOT NULL,
`p2normalrecord` varchar(32) NOT NULL,
`p2ladderrecord` varchar(32) NOT NULL,
`gameduration` int(8) NOT NULL,
PRIMARY KEY (`uid`)
);
Надявам се да помогнете