Hallo, ich möchte mir ein Script schreiben, welches ich per Cronjob ausführen lasse. Folgendes soll passieren:
1. Es sollen alle Tabellen einer Datenbank geleert / gelöscht werden.
2. Die Dump-Datei auf dem Webserver soll eingespielt werden.
Ich hatte es vorher so, das sich einfach folgenden Befehl ausgeführt habe:
Das funktionierte. Jedoch nur, solange die Tabelle nicht verändert wurde.
Habe ich z. B. in einer Tabelle etwas ergänzt, wurde mir das nach dem das Script durchgelaufen ist, nicht wieder gelöscht.
Könnt Ihr mir hier weiterhelfen?
So werden mir schonmal alle Tabellennamen ausgegeben.
Danke
1. Es sollen alle Tabellen einer Datenbank geleert / gelöscht werden.
2. Die Dump-Datei auf dem Webserver soll eingespielt werden.
Ich hatte es vorher so, das sich einfach folgenden Befehl ausgeführt habe:
PHP-Code:
exec("mysql -u benutzer -p'passwort' datenbankname < dump.sql");
Habe ich z. B. in einer Tabelle etwas ergänzt, wurde mir das nach dem das Script durchgelaufen ist, nicht wieder gelöscht.
PHP-Code:
<?php
error_reporting (E_ALL);
ini_set ('display_errors', true);
/*
* Dump einspielen: Cronjob - *KT
*/
// Verbindungsdaten
define('DB_HOST', 'localhost');
define('DB_NAME', 'DBNAME');
define('DB_USER', 'DBUSER');
define('DB_PASS', 'DBPASS');
define('DB_DUMP', 'DUMP.sql');
// Datenbankverbindung aufbauen
$pdo = 'mysql:host=' . DB_HOST . ';dbname=' . DB_NAME . ';';
$user = DB_USER;
$password = DB_PASS;
$options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');
try {
$dbh = new PDO($pdo, $user, $password, $options);
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
$stmt = $dbh->prepare("SHOW Tables");
$stmt->execute();
$rows = array();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$rows[] = $row;
}
foreach ($rows as $row) {
$stmt = $dbh->prepare("DROP TABLE " . $row['Tables_in_' . DB_NAME . ''] . "");
$stmt->execute();
}
$sql = file_get_contents(DB_DUMP);
$stmt = $dbh->prepare($sql);
$stmt->execute();
So werden mir schonmal alle Tabellennamen ausgegeben.
Danke
Kommentar