Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
peguei um script de backup do laboratorio de script, é um script para gerar sql para backup de banco de dados, foi modificado por jnejunior, Andrey, Carlos, o script é muito bom, só gostaria de saber como compactar apenas o resultado gerado deste script, já que o resultado nem sempre esta em uma variável, no script vi que tem um printf()...
este é o script de backup:
<!doctype html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
<?php
$PDO = new PDO( 'mysql:host=localhost', 'root', '' );
$PDO->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$PDO->setAttribute( PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC );
?>
<form method="GET">
Selecione o banco de dados: <select name="database" onchange="this.form.submit()">
<?php
foreach( $PDO->query( 'SHOW DATABASES' )->fetchAll() as $index => $data ){
if( $_GET['database'] == $data['Database'] ){
echo '<option value="'.$data['Database'].'" selected>', $data['Database'], '</option>';
}else{
echo '<option value="'.$data['Database'].'">', $data['Database'], '</option>';
}
}
?>
</select><br />
</form>
<form method="POST">
<?php
if( !empty( $_GET['database'] ) ){
echo 'Selecione as tabelas: <br />
<select name="table[]" multiple="multiple">';
$Tables = $PDO->query( 'SHOW TABLES FROM `'.$_GET['database'].'`' )->fetchAll();
for( $i = 0; $i < sizeOf( $Tables ); ++$i ){
foreach( $Tables[ $i ] as $index => $data ){
echo '<option value="'.$data.'">'.$data.'</option>';
}
}
echo '</select><br />';
echo '<input type="submit" value="Fazer Backup" name="backup">';
}
?>
</form>
<?php
echo '<pre>';
if( isset( $_POST['backup'] ) ){
$PDO->query( 'USE `'.$_GET['database'].'`' );
echo '<textarea cols="150" rows="60">';
foreach( $_POST['table'] as $index => $data ){
$create = $PDO->query( 'SHOW CREATE TABLE `'.$data.'`' )->fetchAll();
foreach( $create as $createTable){
echo $createTable[ 'Create Table' ], ";\n\n";
}
$select = $PDO->query( 'SELECT * FROM `'.$data.'`' )->fetchAll();
for( $i = 0; $i < sizeOf( $select ); ++$i ){
foreach( $select[ $i ] as $field => $value ){
$fields[ $field ] = '`'.$field.'`';
if( !is_numeric( $value ) ){
$values[ ] = sprintf( "'%s'", $value );
}else{
$values[ ] = ( float ) $value;
}
}
$result[ ] = sprintf( '( %s )', implode( ', ', $values ) );
unset( $values );
}
printf( "INSERT INTO `%s`( %s ) \nVALUES \n%s;\n\n", $data, implode( ',', $fields ), implode( ", \n", $result ) );
unset( $result, $fields );
}
echo '</textarea>';
}
?>
</body>
</html>Carregando comentários...