kostenloser Webspace werbefrei: lima-city


MySQL und PHP: Parse Error

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    thekoopacrafter

    thekoopacrafter hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. g****e

    Das Problem ist das Semikolon nach dem jeweilgen Befehl (
    mysql_connect
    bzw
    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
    or
    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. Gibt
    mysql_connect
    nun einen truish Wert zurück (eben die Ressouce), dann ist das Konstrut insgesamt true, und
    die
    wird niemals ausgeführt um den Rückgabe Wert zu prüfen. Wenn
    mysql_connect
    fehlschlägt, gibt es jedoch false zurück, sodass der Rückgabewert von
    die
    versucht wird zu prüfen.

    Falls du dir das noch tiefergehend durchlesen willst, findest du bei Google alles nötige unter dem Namen "short circuit".

    Liebe Grüße
  4. Autor dieses Themas

    thekoopacrafter

    thekoopacrafter hat kostenlosen Webspace.

    Danke für die schnelle Rückmeldung :)

    Hat funktioniert :)

    MfG
  5. 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.
  6. $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.
  7. horstexplorer

    horstexplorer hat kostenlosen Webspace.

    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
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!