online 1
gast (50)

/ Forum / Skripte(PHP,ASP,Perl...)

Skripte(PHP,ASP,Perl...)Skripte(PHP,ASP,Perl...)

Fragevon Blanidur vom 01.08.2019, 19:19 Options

unexpected T_STRING, aber wo liegt der Fehler?

Ich bekomme in dieser Zeile immer Parse error: parse error, unexpected T_STRING

$sql = "DELETE FROM ".db_prefix("module_userprefs")." WHERE userid=".$session[user][acctid] AND modulname not 'mod_rp';

Ich stehe aber völlig auf dem Schlauch und kann den Fehler daran einfach nicht finden.


Antwort schreiben

Antwort 1 von Supermax vom 01.08.2019, 19:47 Options

so müßte es korrekt heißen:

$sql = "DELETE FROM ".db_prefix("module_userprefs")." WHERE userid=".$session[user][acctid]." AND modulname not 'mod_rp'";

Antwort 2 von Blanidur vom 01.08.2019, 20:56 Options

Vielen Dank!

Ich hab da einiges hin und her probiert, aber scheinbar immer igendwo ein " oder ' vergessen. Nun klappts ;)

Antwort 3 von Blanidur vom 01.08.2019, 21:32 Options

Tut mir leid, aber es funktioniert so leider doch nicht.

Es kommt zwar nicht mehr zu einem Fehler, aber gelöscht wird so nun leider garnichts mehr.

Antwort 4 von PowerPaul86 vom 13.08.2019, 10:21 Options

Also solche Probleme habe ich als auch

ich versuche dann meistens immer 5-10 min lang den fehler zu sehen

wenn ich dann aber doch nicht finde zieh ich das einfach raus

$vari1 = db_prefix("module_userprefs");
$vari2 = $_SESSION['user']['acctid'];

$sql = "DELETE FROM ".$vari1."
		WHERE userid = ".$vari2." 
		AND modulname NOT 'mod_rp'";


das problem ist dir ja bewusst, dass er nicht weiss wo die php befehle bei db_prefix("module_userprefs"); aufhöhren und die SQL befehle des strings $sql aufhöhren

Antwort 5 von Blanidur vom 13.08.2019, 14:47 Options

Oh, tut mir leid. Die obere Variante funktioniert doch bestens. Ich hatte in der ganzen Sache nur einen Tipfehler drin.

Es heisst nicht "AND modulname not " sondern "AND modulename not ". Die Zeile ansich ist also in der Form korreckt.

Antwort 6 von ClemBra vom 13.08.2019, 20:55 Options

...was ist mit
Zitat:
$session[user][acctid]

Funktioniert das ohne user und acctid in Anführungszeichen zu stellen, sind das Konstanten, die mit define() definiert wurde, oder hat das Forum die weg gemacht?

Gruß Clemens

Antwort 7 von Blanidur vom 13.08.2019, 20:59 Options

Das Forum hat da nichts weg gemacht. Es funktioniert so.

Antwort 8 von ClemBra vom 13.08.2019, 22:12 Options

stimmt, hab nochmal richtig nachgedacht, aber wenn du ein

error_reporting(E_ALL);

darüber setzt und Fehler auch angezeigt werden, hast du hässliche Notizen.

Antwort 9 von Blanidur vom 13.08.2019, 22:38 Options

Warum?

Antwort 10 von son_quatsch vom 13.08.2019, 23:24 Options

Warum was?

Weil es nicht korrekt ist. Elemente eines Feldes sind entweder Ganzzahlen (z.B. Feld[20]) oder Strings (z.B. Feld['eins']). Bei Deinem Code denkt sich PHP "die dort genannte Konstante ist gar nicht definiert - hmm... ich versuch es mal als String zu deuten".

Siehe auch Doku http://de2.php.net/manual/de/language.types.array.php#language.type...

Antwort 11 von ClemBra vom 14.08.2019, 18:56 Options

Das ist meiner Meinung nach einer der Nachteile von PHP. Man kann vieles schnell machen, aber auch einiges zu schnell. Der Code ist erst gut, wenn auch mit einem E_ALL, bei PHP5
error_reporting(E_ALL | E_STRICT);
keine PHP-Meldungen mehr erscheinen.

Gruß Clemens

PS: Pfuschen mit dem @ gilt nicht.

Ähnliche Themen

Fehler: Parse error: parse error, unexpected T_STRING
minuette  29.05.2007 - 125 Hits - 1 Antwort

string produck name
indianer  02.08.2007 - 54 Hits - 4 Antworten

unexpected T_DEC
titanic123  09.12.2007 - 127 Hits - 2 Antworten

Novell-Client in VmWare-WKS
DirtyDiana  11.06.2008 - 143 Hits -

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026