Google
Web dns.bdat.net

Re: [PHP-ES] mysqldump desde php

Write haof XML files: Gonzalo A. Villegas ( gvillegas@parquesoft.com)
Fecha: jue 04 ago 2005 - 19:16:32 CEST


Hola...

Esta función podría servirte...

function dumpDB($dbName, $type) {
        $tables = mysql_list_tables($dbName);

  $Dx_Create_Tables = "";
  switch($type) {
   case "data":
            while ($tableItem = mysql_fetch_row($tables)) {
                $query = "Insert into ".$tableItem[0]." (";
       mysql_query("LOCK TABLES ".$tableItem[0]." WRITE");
                $qresult = mysql_query("SELECT * FROM ".$tableItem[0]."");

                $fields = "";
                $values = "";
                while ($line = mysql_fetch_assoc($qresult)) {
                    while (list($col_name, $col_value) = each($line)) {
         $fields .= "".$col_name.",";
                        if (!is_int($col_value) && !is_numeric($col_value))
          $values .= "'" . mysql_escape_string($col_value) . "',";
                        else
          $values .= "" . mysql_escape_string($col_value) . ",";
                    }

                    $fields = substr($fields, 0, strlen($fields)-1);
                    $values = substr($values, 0, strlen($values)-1);
                    $myquery = $query . $fields . ") values (" . $values .
");";
                    $Dx_Create_Tables .= "\r\n<xquery>\n" . $myquery .
"\n</xquery>\r\n" ;
                    $fields = "";
                    $values = "";
                }
       mysql_query("UNLOCK TABLES;");
      }
      break;
   case "create":
            $defs = array();
            while ($tableItem = mysql_fetch_row($tables)) {
                $result = mysql_query("SHOW CREATE TABLE " . $dbName . "." .
$tableItem[0]);
                $def = "";
        while ($def = mysql_fetch_row($result)) {
         if(!empty($def))
          array_push($defs,$def);
        }
            }
            foreach($defs as $key => $val) {
       $Dx_Create_Tables .= "# Drop table '" . $val[0] . "' if exist";
       $Dx_Create_Tables .= "\n<xquery>\n";
       $Dx_Create_Tables .= "DROP TABLE IF EXISTS " . $val[0] . ";";
       $Dx_Create_Tables .= "\n</xquery>\n";
       $Dx_Create_Tables .= "# create table '" . $val[0] . "'";
       $Dx_Create_Tables .= "\n<xquery>\n";
       $Dx_Create_Tables .= "" . $val[1] . " ;";
       $Dx_Create_Tables .= "\n</xquery>\r\n";
            }
      break;
  }
        return $Dx_Create_Tables;
 }

Gonzalo A. Villegas
Lider Desarrollo
SWS
Parquesoft Cali - Colombia

----- Original Message -----
From: "SISTEMAS ARONEM" < sistemas@aronem.com>
To: < php-es@lists.php.net>
Sent: Thursday, August 04, 2005 10:59 AM
Subject: [PHP-ES] mysqldump desde php

> Hola amigos.
>
> Necesito hacer un volcado de una base de datos para respaldos tal cual lo
> hace mysqldump, pero necesito hacerlo desde código php ya que no tengo
> acceso directo al shell del computador. He buscado en la referencia de
> funciones de mysql en www.php.net y no encuentro. Alguien sabe como
> hacerlo?
>
> Antes de nada agradesco su valioso tiempo.
>
> Saludos
> Hermann
> --
> PHP Spanish Localization Talk Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php

-- 
PHP Spanish Localization Talk Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Este archivo fue generado por hypermail 2.1.7 : sáb 18 mar 2006 - 18:23:48 CET