Seite 1 von 2

SQL Manuell ausführen anstatt Datei ausführen, wie geht das?

Verfasst: 19.01.2007 21:19
von Lumpi007
Hallo,

ich installiere einen Mod und da ist nur eine install Datei dabei, keine manuelle SQL Anleitung.

Nun sind die Tabellen in der Datenbank alle anders benannt anstatt phpbb_........

Was müsste ich tun, um die SQL Befehle manuell ausführen zu können?

Hier mal die install.php Datei.

Code: Alles auswählen

<?
$tablename = 'config';

// ******************* NO EDITING BELOW THIS LINE *******************

$lpetver = '1.0.0';

// connect to phpbb
include('./config.php');

$cnx = mysql_connect($dbhost, $dbuser, $dbpasswd)
		or die("Unable to connect to database server.");
mysql_select_db($dbname, $cnx)
		or die("Unable to select database.");


$sql1 = "INSERT INTO ". $table_prefix.$tablename ." (config_name, config_value) VALUES ('board_note_enable', '1')";

$result = mysql_query($sql1);
if(!$result)
	echo "<font color ='red'>Install failed<BR><BR></font>";
	if (mysql_error()) { echo "Error Report: <B>".mysql_error()."</B><BR><BR>"; }
else {
	echo "<font color ='green'>Install complete, new row in the table added.</font><BR><BR><BR>Please remember to delete this file ASAP.<BR><BR><BR>";
	}

$sql1 = "INSERT INTO ". $table_prefix.$tablename ." (config_name, config_value) VALUES ('board_note', 'Board Note Text<br><br>HTH AWSW <img src=\"images/smiles/icon_rolleyes.gif\"><br><a href=\"http://www.awsw.de\">www.awsw.de</a>')";

$result = mysql_query($sql1);
if(!$result)
	echo "<font color ='red'>Install failed<BR><BR></font>";
	if (mysql_error()) { echo "Error Report: <B>".mysql_error()."</B><BR><BR>"; }
else {
	echo "<font color ='green'>Install complete, new row in the table added.</font><BR><BR><BR>Please remember to delete this file ASAP.";
	}
exit;
?>

Verfasst: 19.01.2007 21:38
von Stefane
Hi,
dieses install-Script kannst du als Admin im jeweiligen Forum aufrufen. Es liest nämlich mit

Code: Alles auswählen

$table_prefix
das Prefix des jeweiligen Forums richtig aus.
Also sollte es keine Probleme bei dem Install geben.

Verfasst: 19.01.2007 21:42
von Lumpi007
Hi,
kannst du mir das mal genauer erklären.

Verfasst: 19.01.2007 21:52
von Stefane
na gut.
also...
der Code der Install-Datei (die du als Admin aufrufen sollst) beinhaltet zunächst

Code: Alles auswählen

include('./config.php');
. Damit wird die config.php aus deinem Foren-Ordner aufgerufen und u.a deren Variablen eingebunden. Eine von den Variablen ist die

Code: Alles auswählen

$table_prefix
(kannst ja mal nen Blick dazu in deine config.php riskieren...dort steht nämlich dein Prefix für das Forum, in dessen Ordner du dich befindest...so dass man das nicht immer separat angeben muss und auch andere Prefixes anstatt phpbb_ genommen werden können)
also beinhaltet $table_prefix dein aktuelles Forum-Prefix, das du bei der Installation angegeben hast. Dieses wird nun in dem Install-Script für die SQL-Einträge verwendet...u.a. hier in der Zeile:
$sql1 = "INSERT INTO ". $table_prefix.$tablename ." (config_name, config_value) VALUES ('board_note_enable', '1')";
Ganz oben im Install-Script ist noch das angegeben:

Code: Alles auswählen

$tablename = 'config';
...das heißt, diese Script schreibt in deine Config-Tabelle (prefix_config) deiner Datenbank...

Ich denke, das sollte zur Erklärung reichen. Oder nicht? ;-)

Verfasst: 19.01.2007 21:55
von Lumpi007
Soweit komme ich noch mit. Und was muss ich aus meiner vorhandenen install.php Datei übernehmen?

Verfasst: 19.01.2007 22:02
von Stefane
was willst du erreichen? ich kann mir nicht vorstellen, was du erreichen willst? Wenn du das als MOD in dein Forum eigebaut hast und du nach den CodeChanges die install-Datei aufrufst und diese keine Fehler ausspuckt, hast du die Mod erfolgreich installiert.
Da sollte es keine Probleme geben!!!
Oder kapiere ich gerade nicht, was du machen willst? Selbst wenn dein Prefix nicht "phpbb_" ist das egal, weil dein richtiges Prefix nach dem obigen Prinzip automatisch ausgelesen wird.
Kläre mich bitte auf, wenn ich dich gerade völlig falsch verstehe.

Verfasst: 19.01.2007 22:06
von Lumpi007
Hier mal die Fehlermeldung

Code: Alles auswählen

CBACK CrackerTracker konnte die Datenbankoperation nicht korrekt durchführen.

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'images/smiles/icon_rolleyes.gif">
www.awsw.de
INSERT INTO for_01_ctracker_backup (`config_name`, `config_value`) VALUES ("board_note", "Board Note Text

HTH AWSW 
www.awsw.de")

Line : 637
File : class_ct_adminfunctions.php

Verfasst: 19.01.2007 22:23
von Stefane
Na da wird doch schon mal nen Schuh draus. Damit kann man wenigstens mal was anfangen.
...also... das sieht mir danach aus, als hättest du den neuen CTracker eingebaut, der diese Install-Datei irgendwie blockt. Das Script an sich ist nämlich nicht fehlerhaft.
Vlt gibts ja zu diesem Problem auf www.cback.de eine Lösung.
Wenn nicht, dann hier mal die manuelle SQL-Anweisungen zum Eintragen via phpmyadmin:

Code: Alles auswählen

INSERT INTO phpbb_config (config_name, config_value) VALUES ('board_note_enable', '1');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('board_note', 'Board Note Text<br><br>HTH AWSW <img src="images/smiles/icon_rolleyes.gif"><br><a href="http://www.awsw.de">www.awsw.de</a>');
sollte so funktionieren.

Verfasst: 19.01.2007 22:32
von Lumpi007
ich habe das ausgeführt und bekomme folgende Fehlermeldung in mysql.

Code: Alles auswählen

Fehler
SQL-Befehl: 

INSERT INTO for_01_config( config_name, config_value ) 
VALUES (

'board_note_enable', '1'
);



MySQL meldet:  

#1062 - Duplicate entry 'board_note_enable' for key 1

Verfasst: 19.01.2007 22:43
von Stefane
jo, dann ist der schon drinnen, also musst du nur noch

Code: Alles auswählen

INSERT INTO phpbb_config (config_name, config_value) VALUES ('board_note', 'Board Note Text<br><br>HTH AWSW <img src="images/smiles/icon_rolleyes.gif"><br><a href="http://www.awsw.de">www.awsw.de</a>');
ausführen. Wenn dann auch
#1062 - Duplicate entry ...
kommt, dann ist dieser Teil auch schon vorhanden und die Installation ist abgeschlossen.