Bueno primero se tiene que conseguir los campos de la tabla, para ello se puede usar:
Código:
SHOW FULL COLUMNS
FROM tabla
Código PHP:
$campos=array();
$q=mysql_query("
SHOW FULL COLUMNS
FROM tabla
");
while($r=mysql_fetch_array($q)) {
$campos[]=$r["Field"]; //NOTA: tiene q ser "Field"
}
Luego, los datos de la tabla
Código PHP:
$registros=array();
$q=mysql_query("
SELECT *
FROM tabla
");
$index=0;
while($r=mysql_fetch_array($q)) {
for ($i=0; $i<count($campos); $i++) { //$campos obtenido anteriormente
$registros[$index][$campos[$i]]=$r[$campos[$i]];
}
$index++;
}
Si juntamos todo en una sola función sería algo así:
Código PHP:
function backupTabla($t) {
$conn=mysql_connect("db_host", "db_user", "db_pass");
mysql_select_db("db");
$campos=array();
$q=mysql_query("
SHOW FULL COLUMNS
FROM ".$t."
");
while($r=mysql_fetch_array($q)) {
$campos[]=$r["Field"]; //NOTA: tiene q ser "Field"
}
$registros=array();
$q=mysql_query("
SELECT *
FROM ".$t."
");
$index=0;
while($r=mysql_fetch_array($q)) {
for ($i=0; $i<count($campos); $i++) { //$campos obtenido anteriormente
$registros[$index][$campos[$i]]=$r[$campos[$i]];
}
$index++;
}
mysql_close($conn);
$return=array();
$return[]=$campos;
$return[]=$registros;
return $return;
}
Entonces
$return[0] contiene los campos de la tabla
$t y
$return[1] contiene los registros de la tabla
$t. A partir de este
array se puede reconstruir la tabla original.
Saludos,
HA