Hi,
folgendes Script:
dient ein Backup einer DB zu erledigen. Gesteuert über Cronjob. Allerdings verliert das Script die DB-Verbindung. Gibt es hierfür eine Lösung oder warum könnte hier die Verbindung verloren gehen?
folgendes Script:
PHP:
<?php
$sql = mysql_connect('xxx','xxx','xxx');
mysql_select_db('xxx',$sql);
$backup = "";
$inserts = "";
$insert = "";
$con = mysql_list_tables('xxx');
while($row = mysql_fetch_row($con)) {
$som = mysql_query("SHOW CREATE TABLE ".$row[0]."");
$ds = mysql_fetch_object($som);
$name = mysql_field_name($som, 1);
$inserts = "";
$zum = mysql_query("SELECT * FROM ".$row[0]."");
$anzahl = mysql_num_fields($zum);
for($i = 0; $i <= $anzahl; $i++) {
$inserts .= mysql_field_name($zum, $i)." ";
}
$checker = str_replace(" ", ", ", $inserts);
$checker = str_replace(", ,", "", $checker);
$rol = mysql_query("SELECT $checker FROM ".$row[0]);
if($p = mysql_num_rows($rol) > 0) {
while($s = mysql_fetch_object($rol)) {
$spalten = trim($checker);
$insert .= "INSERT INTO ".$row[0]." ($spalten) VALUES (";
foreach($s AS $key => $vars) {
$varse = str_replace("\015", "\\n", $vars);
$varse = str_replace("\012", "\\n", $varse);
$varse = str_replace("'", "\'", $varse);
$varse = htmlspecialchars($varse);
$insert .= "'$varse',";
}
$insert .= ");\n";
$insert = str_replace(",);", ");", $insert);
}
}
else { $insert .= "#------------- Now Inserts ---------------#"; }
$checker = "";
$backup .= "\n\n".$ds->$name.";\n\n\r$insert\n\r";
$insert = "";
}
mysql_free_result($rol);
mysql_free_result($som);
mysql_free_result($con);
mysql_close($sql);
$handler = fopen("backupa.sql", "w+");
fwrite($handler, $backup);
fclose($handler);
?>
dient ein Backup einer DB zu erledigen. Gesteuert über Cronjob. Allerdings verliert das Script die DB-Verbindung. Gibt es hierfür eine Lösung oder warum könnte hier die Verbindung verloren gehen?