Per Script die DB reparieren, analysieren u.s.w.

Bash, Shell, PHP, Python, Perl, CGI
007killer
Posts: 11
Joined: 2004-02-13 04:52

Per Script die DB reparieren, analysieren u.s.w.

Post by 007killer »

Hallo,

ich habe gerade ein kleines recht simples Script gebastelt, dass wäre das hier:

Code: Select all

<?
//Ã?berprüfen der Tabellen//
include("acp/_data_inc.php");
mysql_connect($sqlhost,$sqluser,$sqlpass) OR DIE( "Kann nicht zum MySQL server connecten!");
mysql_select_db($database) or DIE( "Keine Datenbank erreichbar!" );
mysql_query("CHECK TABLE $tables");
echo mysql_error(); 
if (mysql_errno()) die("Fehler beim Ã?berprüfen.");    
echo("Ã?berprüfen abgeschlossen!<br>"); 

//Analysieren der Tabellen//
mysql_connect($sqlhost,$sqluser,$sqlpass) OR DIE( "Kann nicht zum MySQL server connecten!");
mysql_select_db($database) or DIE( "Keine Datenbank erreichbar!" );
mysql_query("ANALYZE TABLE $tables");
echo mysql_error(); 
if (mysql_errno()) die("Fehler beim Analysieren.");    
echo("Analysieren abgeschlossen!<br>"); 

//Reparieren der Tabellen//
mysql_connect($sqlhost,$sqluser,$sqlpass) OR DIE( "Kann nicht zum MySQL server connecten!");
mysql_select_db($database) or DIE( "Keine Datenbank erreichbar!" );
mysql_query("REPAIR TABLE TABLE $tables");
echo mysql_error(); 
if (mysql_errno()) die("Fehler beim Reparieren.");    
echo("Reparieren abgeschlossen!<br>"); 

//Optimieren der Tabellen//
mysql_connect($sqlhost,$sqluser,$sqlpass) OR DIE( "Kann nicht zum MySQL server connecten!");
mysql_select_db($database) or DIE( "Keine Datenbank erreichbar!" );
mysql_query("OPTIMIZE TABLE $tables");
echo mysql_error(); 
if (mysql_errno()) die("Fehler beim Optimieren.");    
echo("Optimierung abgeschlossen!<br>"); 
?>

Die Variable "$tables" wird von der _data_inc.php geholt und hinter der "$tables" in der _data_inc.php stehen die ganzen Datenbanknamen. Wenn ich das Script jetzt auf meiner Seite aufrufe: siehe kommt die Fehlermeldung: "You have an error in your SQL syntax near '' at line 1Fehler beim Ã?berprüfen." Vielleicht könnt ihr mir helfen wodurch der Fehler kommt.

Danke im voraus 007killer
niklas_
Posts: 122
Joined: 2003-08-13 20:46

Re: Per Script die DB reparieren, analysieren u.s.w.

Post by niklas_ »

Zunächst der Hinweis / die Frage, warum du unnätigerweise die DB Verbindung 5 mal neu herstellst?!

Wie sind die Werte in $tables gespeichert?
007killer
Posts: 11
Joined: 2004-02-13 04:52

Re: Per Script die DB reparieren, analysieren u.s.w.

Post by 007killer »

hm... gute frage warum ich andauernd neu verbinde :D

Hier das in der _data_inc.php:

Code: Select all

$tables		=	'gbb_wars'; 'gbb_links'; 'gbb_partner'; 'gbb_sponsoren'; 'gbb_warergebnisse'; 'gbb_ligenarten'; 'gbb_user';
					'gbb_kommentare'; 'gbb_member_rvs'; 'gbb_member_cod'; 'gbb_member_et'; 'gbb_member_soe'; 'gbb_member_fr';
					'gbb_member_jop'; 'gbb_config';
EDIT: Ok jetzt gingen die ersten 2 Sachen schon mal. Bloß geht das Reparieren net mehr rofl.... siehe Link von oben !
niklas_
Posts: 122
Joined: 2003-08-13 20:46

Re: Per Script die DB reparieren, analysieren u.s.w.

Post by niklas_ »

lol? so kannst du doch keine variablen zuweisen!

$tables = "deinwert";

nicht mehr und nicht weniger!

Wenn du ; zwischen den tabellen haben willst dann muss es so laufen:
$tables = "tbl1;tbl2;tbl3"
007killer
Posts: 11
Joined: 2004-02-13 04:52

Re: Per Script die DB reparieren, analysieren u.s.w.

Post by 007killer »

Aber so wie ich es jetzt habe geht es trotzdem !?!?!?

SIEHE

Das kommt wenn ich die Datei aufrufe:

Ã?berprüfen abgeschlossen!
Analysieren abgeschlossen!
You have an error in your SQL syntax near 'TABLE gbb_wars' at line 1Fehler beim Reparieren.
niklas_
Posts: 122
Joined: 2003-08-13 20:46

Re: Per Script die DB reparieren, analysieren u.s.w.

Post by niklas_ »

Nein. Es wird 100% nur die gbb_wars upgedatet!
Du kannst ja testweise mal

Code: Select all

echo $tables;
machen.



zum optimize prob:

Code: Select all

$sql = 'OPTIMIZE TABLE `gbb_wars` '; 
mysql_query($sql); 
007killer
Posts: 11
Joined: 2004-02-13 04:52

Re: Per Script die DB reparieren, analysieren u.s.w.

Post by 007killer »

Hm.. Stimmt, aber mit einer anderen schreibweise klappts auch net was du da oben geschrieben hast: "$tables = "tbl1;tbl2;tbl3""
oxygen
Posts: 2138
Joined: 2002-12-15 00:10
Location: Bergheim

Re: Per Script die DB reparieren, analysieren u.s.w.

Post by oxygen »

natürlich nicht, mysql erwartet ja auch nicht CHECK TABLE tabelle1; tabelle2 etc... sondern CHECK TABLE tabelle1 tabelle2 etc

wobei ich das alles für ausgesprochenen Unfug halte.