PHP/Cronjob

xdragonx

Well-known member
ID: 310927
L
4 März 2008
348
11
Hallo,
ich habe eine PHP Datei geschrieben die per Cronjob ausgeführt werden soll und zu einer bestimmten Zeit alle Tabellen aus einer Datenbank löschen soll und sie wieder erstellen soll.

Hier ist der Code:

<php
$hostname = "++++++++";
$Benutzername = "+++++++++";
$Datenbankname = "++++++++";
$Kennwort = "++++++";

mysql_connect($hostname,$Benutzername,$Datenbankname,$Kennwort) or die("Nicht Verbunden");



mysql_unbuffered_query("DROP TABLE user, liste" );



$query="CREATE TABLE `liste` (
`l1` int(11) NOT NULL default '0',
`l2` int(11) NOT NULL default '0',
`l3` int(11) NOT NULL default '0',
`l4` int(11) NOT NULL default '0',
`l5` int(11) NOT NULL default '0'
) TYPE=MyISAM;


Daten für Tabelle `liste`


INSERT INTO `liste` (`l1`, `l2`, `l3`, `l4`, `l5`) VALUES (0, 0, 0, 0, 0);




$query=CREATE TABLE `user` (
`id` int(11) NOT NULL auto_increment,
`kid` int(11) NOT NULL default '0',
`liste` int(11) NOT NULL default '1',
`datein` int(11) NOT NULL default '0',
`datakt` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;

Daten für Tabelle `user`




mysql_query($query);
mysql_close();
?>

Mein Problem ist das er keinen Fehler anzeigt aber auch nichts passiert.
Woran kann das liegen?
 
Wenn das hier alles Code is, fehlt n Anführungszeichen.

P.S. Wäre es nicht besser, die Tables einfach zu TRUNCATEn, anstatt sie zu droppen und wieder anzulegen? :roll:

edit:
Wenn du den Fehler sehen willst, solltest du ihn auch ausgeben lassen ;)
 
Hab jetzt einen Fehler bekommen Script sieht jetzt so aus:

<?php
$link = mysql_connect('+++++', '++++++++++', '++++');
if (!$link) {
die('keine Verbindung möglich: ' . mysql_error());
}
echo 'Verbindung erfolgreich';

mysql_unbuffered_query("DROP TABLE user, liste" );



$query="CREATE TABLE `liste` (
`l1` int(11) NOT NULL default '0',
`l2` int(11) NOT NULL default '0',
`l3` int(11) NOT NULL default '0',
`l4` int(11) NOT NULL default '0',
`l5` int(11) NOT NULL default '0'
) TYPE=MyISAM;


Daten für Tabelle `liste`


INSERT INTO `liste` (`l1`, `l2`, `l3`, `l4`, `l5`) VALUES (0, 0, 0, 0, 0);




$query=CREATE TABLE `user` (
`id` int(11) NOT NULL auto_increment,
`kid` int(11) NOT NULL default '0',
`liste` int(11) NOT NULL default '1',
`datein` int(11) NOT NULL default '0',
`datakt` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;

Daten für Tabelle `user`




mysql_query($query);
mysql_close();
?>

Fehlernachricht ist:

Parse error: syntax error, unexpected $end in /home/webpages/lima-city/shorty13/html/cronjob drop.php on line 45

Weiß leider nicht was ich da noch machen soll. Klammern müssten richtig gesetzt sein.
 
Zuletzt bearbeitet:
Es würde schon helfen, wenn Du einen Editor mit Syntaxhighlighting verwendest oder den Code hier im Forum in [php][/php] steckst, da wir der Fehler ganz schnell offensichtlich:
PHP:
<?php
$link = mysql_connect('+++++', '++++++++++', '++++');
if (!$link) {
die('keine Verbindung möglich: ' . mysql_error());
}
echo 'Verbindung erfolgreich';

mysql_unbuffered_query("DROP TABLE user, liste" );



$query="CREATE TABLE `liste` (
`l1` int(11) NOT NULL default '0',
`l2` int(11) NOT NULL default '0',
`l3` int(11) NOT NULL default '0',
`l4` int(11) NOT NULL default '0',
`l5` int(11) NOT NULL default '0'
) TYPE=MyISAM;


Daten für Tabelle `liste`


INSERT INTO `liste` (`l1`, `l2`, `l3`, `l4`, `l5`) VALUES (0, 0, 0, 0, 0);




$query=CREATE TABLE `user` (
`id` int(11) NOT NULL auto_increment,
`kid` int(11) NOT NULL default '0',
`liste` int(11) NOT NULL default '1',
`datein` int(11) NOT NULL default '0',
`datakt` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;

Daten für Tabelle `user`




mysql_query($query);
mysql_close();
?>
Ausserdem stimme ich theHacker zu, dass es immens einfacher ist, die Tabellen zu TRUNCATEn und den einen Datensatz dann wieder einzufügen. Sind 3 Zeilen SQL anstelle von dem Wust da oben.
 
1. Nimm Truncate :mrgreen:
2. Wenn du 1. nicht beachten willst: Bei dem Code fehlt das Schlusszeichen "
 
Tut mir leid aber da ich mich nur wenig mit PHP auseinander setze und nicht gerade gut darin bin habe ich es so gemacht wie ich es für einfach fand. Wo genau soll denn das " hin?
 
an den Schluss des Querys

PHP:
<?php
$link = mysql_connect('+++++', '++++++++++', '++++');
if (!$link) {
die('keine Verbindung möglich: ' . mysql_error());
}
echo 'Verbindung erfolgreich';

mysql_unbuffered_query("DROP TABLE user, liste" );



$query="CREATE TABLE `liste` (
`l1` int(11) NOT NULL default '0',
`l2` int(11) NOT NULL default '0',
`l3` int(11) NOT NULL default '0',
`l4` int(11) NOT NULL default '0',
`l5` int(11) NOT NULL default '0'
) TYPE=MyISAM;


Daten für Tabelle `liste`


INSERT INTO `liste` (`l1`, `l2`, `l3`, `l4`, `l5`) VALUES (0, 0, 0, 0, 0);




$query=CREATE TABLE `user` (
`id` int(11) NOT NULL auto_increment,
`kid` int(11) NOT NULL default '0',
`liste` int(11) NOT NULL default '1',
`datein` int(11) NOT NULL default '0',
`datakt` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;

Daten für Tabelle `user`";



mysql_query($query);
mysql_close();
?>

aber folgendes sollte eigentlich zum gleichen Resultat führen:

PHP:
<?php
$link = mysql_connect('+++++', '++++++++++', '++++');
if (!$link) {
die('keine Verbindung möglich: ' . mysql_error());
}
echo 'Verbindung erfolgreich';

mysql_query("TRUNCATE TABLE user");
mysql_query("TRUNCATE TABLE liste");
mysql_query("INSERT INTO `liste` (`l1`, `l2`, `l3`, `l4`, `l5`) VALUES (0, 0, 0, 0, 0)");

mysql_close();
?>
 
Danke schön. Bis jetzt funktioniert alles nur löschen und erstellen der Tabellen macht er nicht. Wenn ich die Datei ausführe zeigt er "Verbindung erfolgreich" an und mehr passiert nicht.
 
füge mal folgende zeile nach <?php ein, damit sicher alle fehler angezeigt werden.
PHP:
error_reporting(E_ALL);

mysql_unbuffered_query würde ich durch die funktion mysql_query ersetzen (ich weiss nicht wirklich wass unbuffered query tut..)
 
Okay habe ich gemacht hier nochmal der Code
PHP:
<?php
error_reporting(E_ALL);
$link = mysql_connect('', '', '');
if (!$link) {
die('keine Verbindung möglich: ' . mysql_error());
}
echo 'Verbindung erfolgreich';

mysql_query("DROP TABLE user, liste" );



$query="CREATE TABLE `liste` (
`l1` int(11) NOT NULL default '0',
`l2` int(11) NOT NULL default '0',
`l3` int(11) NOT NULL default '0',
`l4` int(11) NOT NULL default '0',
`l5` int(11) NOT NULL default '0'
) TYPE=MyISAM;


Daten für Tabelle `liste`


INSERT INTO `liste` (`l1`, `l2`, `l3`, `l4`, `l5`) VALUES (0, 0, 0, 0, 0);




$query=CREATE TABLE `user` (
`id` int(11) NOT NULL auto_increment,
`kid` int(11) NOT NULL default '0',
`liste` int(11) NOT NULL default '1',
`datein` int(11) NOT NULL default '0',
`datakt` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;

Daten für Tabelle `user`";



mysql_query($query);
mysql_close();
?>

Anzeigen tut er nun:

Verbindung erfolgreich
Notice: Undefined variable: query in /home/webpages/lima-city/shorty13/html/errorreport.php on line 39
 
Zuletzt bearbeitet:
in $query sind noch einige dinge drin die nicht funktionieren können ..

ich würde wirklich die Variante mit Truncate wähle, das ist viel einfacher (und macht dasselbe) :mrgreen:

PHP:
<?php
$link = @mysql_connect('+++++', '++++++++++', '++++');
if (!$link) {
die('keine Verbindung möglich: ' . mysql_error());
}
echo 'Verbindung erfolgreich';

mysql_query("TRUNCATE TABLE user");
mysql_query("TRUNCATE TABLE liste");
mysql_query("INSERT INTO `liste` (`l1`, `l2`, `l3`, `l4`, `l5`) VALUES (0, 0, 0, 0, 0)");

mysql_close();
?>
 
Tut mir leid aber das funktioniert auch nicht. Kommt auch nur Verbindung erfolgreich und weiter passiert nichts. Habe eben auch Datenbank und alles überprüft. Alles beim alten geblieben. Das ist wirklich komisch...

Edit: Hab die ganze Datenbank durchgeguckt alles beim alten geblieben. Soweit auch alles richtig drin.
 
Zuletzt bearbeitet:
das hab ich in diesem moment auch gerade gesehen .. und du solltest schleunigst dein passwort ändern .. ist oben in einem Post drin..
PHP:
<?php
$link = @mysql_connect('+++++', '++++++++++', '++++');
if (!$link) {
die('keine Verbindung möglich: ' . mysql_error());
}
mysql_select_db("datenbankname");
echo 'Verbindung erfolgreich';


mysql_query("TRUNCATE TABLE user");
mysql_query("TRUNCATE TABLE liste");
mysql_query("INSERT INTO `liste` (`l1`, `l2`, `l3`, `l4`, `l5`) VALUES (0, 0, 0, 0, 0)");

mysql_close();
?>
 
Vielen dank habs völlig vergessen rauszunehmen. Habe es eben geändert hoffe da wurde nichts verändert.

Scheint alles zu funktioniere vielen vielen Dank für die schnelle und nette Hilfe.
 
Zuletzt bearbeitet:
mal ne frage zwischendurch... wo hast du den 10-fach doppker her?
ich kann dich nicht in meiner kundenliste finden...