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 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.