Seite 1 von 1

Skriptproblem...Bitte um Hilfe!

Verfasst: 01.08.2006 15:59
von R.Carlos
Hallo zusammen,
ich habe ein kleines Problem mit meinem Skript. Vorab ersteinmal, ich bin noch ganz neu mit dem Umgang von PHP ;-).
Also folgendes...
ich habe ein Newsletterversandtool mit dem ich Html Mails verschicken kann. Die Adressen zieht er sich aus einer Datenbank und verschickt sie dann.
Wenn ich dieses Tool nun aufrufen will bekomme ich folgende Fehlermeldung...


Code: Alles auswählen

Fehler-Bericht:
newsletter-WebSite

Auf dieser WebSite trat folgender Fehler auf:
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 '-name' at line 1

01.08.2006 13:24:34

Statement: SHOW TABLE STATUS FROM datenbank-name


Das ist sehr komisch, weil eigentlich die Verbindung zur Datenbank besteht. Über ein Formular kann ich neue Adressen eintragen, die auch in die Datenbank geschrieben werden. Also steht die Verbindung oder?

Ich habe mal geschaut und konnte den entsprechenden Befehl eingrenzen. Die Abfrage nach "SHOW TABLES..." findet nur hier statt...

Code: Alles auswählen

function getDeliveryTables () {
        global $AvailableTables;
        if ($GLOBALS ['connID']) {
            $sql = sprintf ("SHOW TABLE STATUS FROM %s ", _MYSQL_DB_);
            $result = myquery ($sql, $GLOBALS ['connID']);
            $pattern = "?"._MYSQL_TABLE_."[0-9]+?";
            while ($row = mysql_fetch_assoc($result)) {
                preg_match($pattern, $row ['Name'], $hit);
                if (!empty ($hit)) {
                    array_push($AvailableTables, $row ['Name']);
                }
            }
        }
    }

    function getRowCount ($db, $table) {
        if ($GLOBALS ['connID']) {
            $sql = sprintf ("SHOW TABLE STATUS FROM %s LIKE '%s'", $db, $table );
            $result = myquery ($sql, $GLOBALS ['connID']);
            $row = mysql_fetch_assoc ($result);
            return $row ['Rows'];
        }
        else {
            return false;
        }
    }

Den _MYSQL_DB_ habe ich so definiert...wobei der ja richtig ausgelesen wird




Code: Alles auswählen

define ('_MYSQL_DB_', 'Datenbank-name');

Hab ich da was übersehen?

Hoffe es kann mir jemand weiterhelfen

Gruß
R.Carlos

Verfasst: 01.08.2006 16:30
von Banger
Deine Datenbank wird wohl kaum "Datenbank-name" heißen, oder?

Falls doch, probier es mal so:

Code: Alles auswählen

define ('_MYSQL_DB_', '`Datenbank-name`');

Verfasst: 01.08.2006 16:30
von Scoutman
mein erste gedanke war das du den namen der datenbank vergessen hast einzutragen und der eintrag "Datenbank-name" der standart wert ist. aber wie du geschrieben hast hast du das ja selbst eingetragen.
heißt deine datenbank also wirklich "Datenbank-name"??

Verfasst: 01.08.2006 17:21
von R.Carlos
Hi,
also der Datenbankname heisst nicht wirklich so. Der Name ist eine Kombination von Buchstaben und Zahlen getrennt von einem Bindestrich.
Das kann ich leider nicht ändern, dass ist vom Provider so vorgegeben.

Denkst du das liegt an dem Bindestrich?

Gruß
R.Carlos

Verfasst: 01.08.2006 17:44
von R.Carlos
@Banger

mit

Code: Alles auswählen

define ('_MYSQL_DB_', '`Datenbank-name`');
hat es funktioniert...ich kann das tool jetzt aufrufen.
Nebeneffekt. Das eintragen der User geht jetzt nicht mehr. Dann mecker er...

Code: Alles auswählen

No database selected
Alles sehr komisch, oder? Warum macht er das denn jetzt?

Gruß
R.Carlos