Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/12/2008, 07:40
p2pdownloading
Invitado
 
Mensajes: n/a
Puntos:
script dump base de datos erros de sintaxis

hola tengo este script que hace un dump de la base de datos y me genera varios errores se semantica, generalmente con las ' / y las ñ como puedo solucionarlo ??

conocen algun buen script para hacer dump ??

Código PHP:
<?php
//------------------------------------------------------------------------------------------
//  Funciones

    
error_reporting( E_ALL & ~E_NOTICE );

    function 
fetch_table_dump_sql($table, $fp = 0) {
        
$tabledump = "--\n";
        if( !
$hay_Zlib ) 
            
fwrite($fp, $tabledump);
        else
            
gzwrite($fp, $tabledump);    
        
$tabledump = "-- Table structure for table `$table`\n";
        if( !
$hay_Zlib ) 
            
fwrite($fp, $tabledump);
        else
            
gzwrite($fp, $tabledump);    
        
$tabledump = "--\n\n";
        if( !
$hay_Zlib ) 
            
fwrite($fp, $tabledump);
        else
            
gzwrite($fp, $tabledump);    

        
$tabledump = query_first("SHOW CREATE TABLE $table");
        
strip_backticks($tabledump['Create Table']);
        
$tabledump = "DROP TABLE IF EXISTS $table;\n" . $tabledump['Create Table'] . ";\n\n";
        if( !
$hay_Zlib ) 
            
fwrite($fp, $tabledump);
        else
            
gzwrite($fp, $tabledump);    

        
$tabledump = "--\n";
        if( !
$hay_Zlib ) 
            
fwrite($fp, $tabledump);
        else
            
gzwrite($fp, $tabledump);    
        
$tabledump = "-- Dumping data for table `$table`\n";
        if( !
$hay_Zlib ) 
            
fwrite($fp, $tabledump);
        else
            
gzwrite($fp, $tabledump);    
        
$tabledump = "--\n\n";
        if( !
$hay_Zlib ) 
            
fwrite($fp, $tabledump);
        else
            
gzwrite($fp, $tabledump);    

        
$tabledump = "LOCK TABLES $table WRITE;\n";
        if( !
$hay_Zlib ) 
            
fwrite($fp, $tabledump);
        else
            
gzwrite($fp, $tabledump);    

        
$rows = query("SELECT * FROM $table");
        
$numfields=mysql_num_fields($rows);
        while (
$row = fetch_array($rows, DBARRAY_NUM)) {
            
$tabledump = "INSERT INTO $table VALUES(";
            
$fieldcounter = -1;
            
$firstfield = 1;
            
// campos
            
while (++$fieldcounter < $numfields) {
                if( !
$firstfield) {
                    
$tabledump .= ', ';
                }
                else {
                    
$firstfield = 0;
                }
                if( !isset(
$row["$fieldcounter"])) {
                    
$tabledump .= 'NULL';
                }
                else {
                    
$tabledump .= "'" . mysql_escape_string($row["$fieldcounter"]) . "'";
                }
            }
            
$tabledump .= ");\n";
            if( !
$hay_Zlib ) 
                
fwrite($fp, $tabledump);
            else
                
gzwrite($fp, $tabledump);    
        }
        
free_result($rows);
        
$tabledump = "UNLOCK TABLES;\n";
        if( !
$hay_Zlib ) 
            
fwrite($fp, $tabledump);
        else
            
gzwrite($fp, $tabledump);    
    }

    function 
strip_backticks(&$text) {
        return 
$text;
    }

    function 
fetch_array($query_id=-1) {
        if( 
$query_id!=-1) {
            
$query_id=$query_id;
        }
        
$record = mysql_fetch_array($query_id);
        return 
$record;
    }

    function 
problemas($msg) {
        
$errdesc = mysql_error();
    
$errno = mysql_errno();
    
$message  = "<br>";
    
$message .= "- Ha habido un problema accediendo a la Base de Datos<br>";
    
$message .= "- Error $appname: $msg<br>";
    
$message .= "- Error mysql: $errdesc<br>";
    
$message .= "- Error número mysql: $errno<br>";
    
$message .= "- Script: ".getenv("REQUEST_URI")."<br>";
    
$message .= "- Referer: ".getenv("HTTP_REFERER")."<br>";

        echo( 
"</strong><br><br><hr><center><small>" );
        
setlocale( LC_TIME,"spanish" );
        echo 
strftime( "%A %d %B %Y&nbsp;-&nbsp;%H:%M:%S", time() );
        echo( 
"<br>&copy;2005 <a href=\"mailto:[email protected]\">Inside PHP</a><br>" );
        echo( 
"vers." . Str_VERS . "<br>" );
        echo( 
"</small></center>" );
        echo( 
"</BODY>" );
        echo( 
"</HTML>" );
        die(
"");
  }

    function 
free_result($query_id=-1) {
    if( 
$query_id!=-1) {
      
$query_id=$query_id;
    }
    return @
mysql_free_result($query_id);
  }

  function 
query_first($query_string) {
    
$res = query($query_string);
    
$returnarray = fetch_array($res);
    
free_result($res);
    return 
$returnarray;
  }

    function 
query($query_string) {
    
$query_id = mysql_query($query_string);
    if( !
$query_id) {
      
problemas("Invalid SQL: ".$query_string);
    }
    return 
$query_id;
  }


//------------------------------------------------------------------------------------------
//  Main
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
 <HEAD>
    <title>Dump y Download la Base de Datos</title>
    <!-- no cache headers -->
    <meta http-equiv="Pragma" content="no-cache">
    <meta http-equiv="no-cache">
    <meta http-equiv="Expires" content="-1">
    <meta http-equiv="Cache-Control" content="no-store">
    <meta http-equiv="Cache-Control" content="no-cache">
    <meta http-equiv="Cache-Control" content="must-revalidate">
    <!-- end no cache headers --> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 </HEAD>
<BODY 
    bgcolor="#D5D5D5" 
    text="#000000" 
    id="all" 
    leftmargin="25" 
    topmargin="25" 
    marginwidth="25" 
    marginheight="25" 
    link="#000020" 
    vlink="#000020" 
    alink="#000020">
<center><h1>Dump y Download la Base de Datos</h1></center>
<br>
<strong>
saludos!