#1 (permalink)  
Alt 08.11.2010, 16:26
Neuer Benutzer
 
Registriert seit: 03.11.2010
Beiträge: 11
Standard [SOLVED] plugin sql_install

Hallo zusammen,

ich habe mal wieder das Forum durchsucht und noch nichts gefunden, was mir weiter geholfen hat, deshalb muss ich leider schon wieder einen neuen Thread eröffnen.

Ich bin gerade dabei ein Plugin zu erstellen, welches die products-Tabelle erweitern soll. Leider funktioniert das irgendwie nicht, aber ich kann auch keinen Fehler erkennen. Könnt ihr mir bitte sagen, was falsch an folgendem Code ist?

Code:
<sql_install>
<![CDATA[
if(!this->_FieldExists("tmp_col_test1", TABLE_PRODUCTS))
	$db->Execute("ALTER TABLE `" . TABLE_PRODUCTS . "` ADD `tmp_col_test1` int(11) NULL;");
]]>
</sql_install>

Die Spalte wird nämlich nicht angelegt, ich bekomme aber auch keine Fehlermeldung.

Danke schonmal im voraus.

Gruß
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #2 (permalink)  
Alt 08.11.2010, 16:42
Erfahrener Benutzer
 
Registriert seit: 15.06.2010
Ort: Dortmund
Beiträge: 175
Standard

Versuch mal folgendes:

Code:
<sql_install>
<![CDATA[
if(!this->_FieldExists('tmp_col_test1', TABLE_PRODUCTS))
	$db->Execute('ALTER TABLE ' . TABLE_PRODUCTS . ' ADD `tmp_col_test1` int(11) NULL;');
]]>
</sql_install>
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #3 (permalink)  
Alt 08.11.2010, 16:46
Erfahrener Benutzer
 
Registriert seit: 15.06.2010
Ort: Dortmund
Beiträge: 175
Standard

Ach ja. Auch brav Plugin deinstalliert und neu installiert nach dem Einfügen des SQL-Codes?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #4 (permalink)  
Alt 08.11.2010, 17:03
Neuer Benutzer
 
Registriert seit: 03.11.2010
Beiträge: 11
Standard

Hallo Ballonsupermarkt,

danke für deine Antwort. Hab deinen Vorschlag probiert: selbes Ergebnis. Hab das Plugin auch immer wieder deinstalliert und installiert, um verschiedene Varianten auszuprobieren. Nervt mittlerweile schon

Hast du oder jemand anders noch eine Idee, was nicht passt oder wie man das evtl. debuggen könnte?

Ich weiß nich, ob's eine Rolle spielt, aber bei der Installation wird ganz am Anfang immer "Warning: Invalid argument supplied for foreach() in ...\xtFramework\classes\class.plugin.php on line 0" angezeigt. Er installiert die Spachvariablen und die Hooks aber alle ordentlich.

Gruß
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #5 (permalink)  
Alt 09.11.2010, 11:58
Erfahrener Benutzer
 
Registriert seit: 15.06.2010
Ort: Dortmund
Beiträge: 175
Standard

Hm... Interessant wäre noch, ob die entsprechende Anfrage via phpMyAdmin problemlos durchläuft und wenn ja, welchen Rückgabewert $db->Execute() zurückliefert.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #6 (permalink)  
Alt 09.11.2010, 13:01
Neuer Benutzer
 
Registriert seit: 03.11.2010
Beiträge: 11
Standard

Danke für deine Hilfe Ballonsupermarkt.

Also die Abfrage funktioniert über phpmyadmin ohne Probleme.

Wie ich an den Rückgabewert von $db->Execute() oder _FieldExists() komme müsstest du mir aber sagen. Ich hab leider keine Idee, da ich über echo nichts ausgeben kann, bzw. nichts angezeigt wird.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #7 (permalink)  
Alt 09.11.2010, 13:56
Erfahrener Benutzer
 
Registriert seit: 15.06.2010
Ort: Dortmund
Beiträge: 175
Standard

Versuch mal das:
Code:
$result=$db->Execute(......);
mail('du@woauchimmer.de', 'db-test', print_r($result, true));
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #8 (permalink)  
Alt 09.11.2010, 15:16
Neuer Benutzer
 
Registriert seit: 03.11.2010
Beiträge: 11
Standard

Das mit dem Mail versenden wollte nicht, deshalb hab ich folgendes probiert:
Code:
<sql_install>
<![CDATA[
$handle = fopen("./tmplog.txt", "a") or die("log kann nicht geöffnet werden");
fwrite($handle, "Field exists: " . $this->_FieldExists('tmp_col_test1', TABLE_PRODUCTS));
fclose($handle);
]]>
</sql_install>
Leider wird aber nicht einmal die Datei angelegt. Wenn ich den Code zum Dateiöffnen in einem Hook ausführe, wird die Datei angelegt. Grundsätzlich sollte es also funktionieren. Gibt es noch andere Möglichkeiten, um zu prüfen ob der Code überhaupt ausgeführt wird?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #9 (permalink)  
Alt 09.11.2010, 15:23
Erfahrener Benutzer
 
Registriert seit: 15.06.2010
Ort: Dortmund
Beiträge: 175
Standard

Na ja, schlimmstenfalls schreibst du Ergebnis in ein Feld einer Datenbanktabelle, die du vorher angelegt hast und schaust dir dann den Inhalt an.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #10 (permalink)  
Alt 09.11.2010, 15:41
Neuer Benutzer
 
Registriert seit: 03.11.2010
Beiträge: 11
Standard

Auf die Idee bin ich bis jetzt noch nicht gekommen Danke.

Ich hab jetzt eine neue Tabelle angelegt und will folgendes ausführen:

Code:
$db->Execute("INSERT INTO `tmplog` (`text`) VALUES ('test')");
Leider wird auch dies nicht ausgeführt. Ich hab irgendwie das Gefühl, dass der komplette <sql_install> und <sql_uninstall> Block ignoriert wird. Hab ich vlt. trotz mehrfacher Überprüfung einen Fehler in der Struktur? Hier mal die komplette Plugin-Datei:
Code:
<xtcommerceplugin>
<title>Test Plugin</title>
<version>1.0.0</version>
<code>test_plugin</code>
<url></url>
<icon></icon>
<type>core</type>
<sql_install>
<![CDATA[
$db->Execute("INSERT INTO `tmplog` (`text`) VALUES ('test');");
]]>
</sql_install>
<sql_uninstall>
<![CDATA[
$db->Execute("INSERT INTO `tmplog` (`text`) VALUES ('test');");
]]>
</sql_uninstall>
<configuration />
<language_content />
<plugin_code />
</xtcommerceplugin>
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
plugin, sqlinstall

Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PlugIn Testberichte.de Producto Allgemeine Diskussionen 4 24.06.2011 20:33
VEYTON SHOP [SOLVED] category_products Plugin aus dem xt:C Veyton 4 Buch farbhelden Fragen zur Software 3 31.03.2010 20:38
Plugin - Welcher Hook für HTML im Body Bereich FloM Fragen zur Software 4 23.02.2010 08:19
Plugin Dresdner-Cetelem Kreditbank live sehen? patston Fragen zur Software 9 23.12.2009 19:11


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:31 Uhr.

Copyright © 2011 xt:Commerce GmbH / xt:Commerce International Ltd. - All Rights Reserved

xt:Commerce is a SafeCharge brand