MySQL und PHP: Parse Error
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
befehl
code
dank
durchlesen
email
erweiterung
fehler
folgende fehlermeldung
grund
hacken
problem
punkt
rand
raten
semikolon
setzen
syntax
system
url
verbindung
-
Hey :)
Ich möchte gerade ein Newsletter-System programmieren (MySQL, PHP und so), aber ich scheitere beim INSERT Befehl.
Ich bekomme aber folgende Fehlermeldung:
Parse error: syntax error, unexpected 'or' (T_LOGICAL_OR) in /home/webpages/lima-city/thekoopacrafter/thekoopacrafter.lima-city.de/news/action.php on line 5
Wie kann ich den Fehler beheben?
mysql_connect("********", "********","********"); or die ("Verbindung nicht möglich"); mysql_select_db("********"); or die ("Verbindung nicht möglich"); $name = $_POST["name"]; $email = $_POST["email"]; $result = "INSERT INTO `newsletter` (`id`, `name`, `mail`) VALUES (RAND(), '.$name', '$.email');";
Das hier oben ist der PHP Code.
Danke im Voraus
MfG Thomas
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Das Problem ist das Semikolon nach dem jeweilgen Befehl (
bzwmysql_connect
).mysql_select_db
Korrekt wäre ohne Semikolon:
mysql_connect("********", "********","********") or die ("Verbindung nicht möglich"); mysql_select_db("********") or die ("Verbindung nicht möglich");
Der Grund ist, dass ein
Lazy ist. Das heißt, dass sobald der erste Wert true ergibt (und damit das ganze OR Konstrukt true wäre) nicht weiter evaluiert wird. Gibtor
nun einen truish Wert zurück (eben die Ressouce), dann ist das Konstrut insgesamt true, undmysql_connect
wird niemals ausgeführt um den Rückgabe Wert zu prüfen. Wenndie
fehlschlägt, gibt es jedoch false zurück, sodass der Rückgabewert vonmysql_connect
versucht wird zu prüfen.die
Falls du dir das noch tiefergehend durchlesen willst, findest du bei Google alles nötige unter dem Namen "short circuit".
Liebe Grüße -
Und wieder mal der Standardhinweis: Die mysql-Erweiterung ist seit PHP 5.5 veraltet und mit PHP 7 entfernt worden. Nutz' lieber direkt mysqli oder PDO.
-
$result = "INSERT INTO `newsletter` (`id`, `name`, `mail`) VALUES (RAND(), '.$name', '$.email');"
Bei der Email ist der Punkt Falsch.
Ich rate bei der ID nicht RAND() zuverwenden sondern bei mysqli einen PRIMARY Schlüssel zu erstellen.
Du musst bei index > PRIMARY wählen und einen Hacken bei A_I setzen. -
Das ganze würde hier doch bereits schon besprochen? Hätte man den Tread nicht weiter führen können?
https://www.lima-city.de/thread/insert-to-funktioniert-nicht -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage