kostenloser Webspace werbefrei: lima-city


Column 'betreff' cannot be null

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    youtvti

    youtvti hat kostenlosen Webspace.

    hi, kann mir helfen

    ich kriege immer fehler meldung

    Array ( [0] => 23000 [1] => 1048 [2] => Column 'betreff' cannot be null )


    PHP siet folgenes aus

    <?php
    
                    if ($_SERVER["REQUEST_METHOD"] == "POST") {
    
                        include "../functions/verbindung.php";
    
                        $insert = $VERBINDUNG->prepare("INSERT INTO `nachrichten`
    
                                                        SET
    
                                                            `art`       = :art,
    
                                                            `name`      = :name,
    
                                                            `email`     = :email,
    
                                                            `betreff`   = :betreff,
    
                                                            `nachricht` = :nachricht,
    
                                                            `datum`     = NOW()");
    
                        $insert->bindValue(':art', $_POST["art"]);
    
                        $insert->bindValue(':name', $_POST["name"]);
    
                        $insert->bindValue(':email', $_POST["email"]);
    
                        $insert->bindValue(':betreff', $_POST["betreff"]);
    
                        $insert->bindValue(':nachricht', $_POST["nachricht"]);
    
                        if ($insert->execute()) {
    
                            echo '<p>Die Nachricht wurde eingetragen.</p>';
    
                            } else {
    
                        print_r($insert->errorInfo());
    
                    }
    
                }
    
            ?>


    Danke voraus!:cookie:
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Hallo.

    Das Formular, mit dem du die Anfrage abschickst, setzt das Feld 'betreff' nicht. Du solltest aber alle Eingaben auch in PHP nochmal prüfen, dass sie nicht leer sind.

    Poste mal bitte dein HTML.
  4. Autor dieses Themas

    youtvti

    youtvti hat kostenlosen Webspace.

    hier ist komplett

    <!DOCTYPE html>
    
    <html lang="de">
    
        <head>
    
            <meta charset="UTF-8"> 
    
                <title>Nachricht eintragen</title>
    
                <style>
    
                    body {
    
                        font-family: Verdana, Arial, Sans-Serif;
    
                        background: Whitesmoke;
    
                    }
    
                </style>
    
    
    
            </head>
    
            <body>
    
                <h3>Nachricht eintragen</h3>
    
                <form action="" method="post">
    
                    <p>
    
                        <label> 
    
                            <select name="art" size="1" autofocus="autofocus">
    
                                <option value=""></option>
    
                                <option value="name">Name,Vorname</option>
    
                                <option value="UserName">UserName</option>
    
                            </select>
    
                        </label>
    
                    </p>
    
                    <p>
    
                        <label>Name/Vorname/Username: 
    
                            <input type="text" name="name" size="25" maxlength="30">
    
                        </label>
    
                    </p>
    
                    <p>
    
                        <label>Email: 
    
                            <input type="text" name="email" size="25" maxlength="30">
    
                        </label>
    
                    </p>
    
                     <p>
    
                        <label>Betreff: 
    
                            <input type="text" name="betreff" size="25" maxlength="30">
    
                        </label>
    
                    </p>
    
                    <p>
    
                        <label>Nachricht: <br>
    
                            <textarea rows="10" cols="40" name="nachricht"></textarea>
    
                        </label>
    
                    </p>
    
                    <input type="submit" value="Absenden">
    
                </form>
    
                <?php
    
                    if ($_SERVER["REQUEST_METHOD"] == "POST") {
    
                        include "../functions/verbindung.php";
    
                        $insert = $VERBINDUNG->prepare("INSERT INTO `nachrichten`
    
                                                        SET
    
                                                            `art`       = :art,
    
                                                            `name`      = :name,
    
                                                            `email`     = :email,
    
                                                            `betreff`   = :betreff,
    
                                                            `nachricht` = :nachricht,
    
                                                            `datum`     = NOW()");
    
                        $insert->bindValue(':art', $_POST["art"]);
    
                        $insert->bindValue(':name', $_POST["name"]);
    
                        $insert->bindValue(':email', $_POST["email"]);
    
                        $insert->bindValue(':betreff', $_POST["betreff"]);
    
                        $insert->bindValue(':nachricht', $_POST["nachricht"]);
    
                        if ($insert->execute()) {
    
                            echo '<p>Die Nachricht wurde eingetragen.</p>';
    
                            } else {
    
                        print_r($insert->errorInfo());
    
                    }
    
                }
    
            ?>
    
        </body>
    
    </html>
  5. Hi,

    so wie dein geposteter Code aussieht, sollte das funktionieren. Das heißt entwederzeigst du uns hier nicht alles, oder das $_POST-Array wird an einer anderen Stelle manipuliert. Selbst wenn du nichts einträgst wird so eine leere Zeichenkette in der Datenbank gespeichert.

    Überprüfe doch einmal (via var_dump() oder print_r()) direkt nach dem if und dann nochmal vor dem execute, welche Daten überhaupt in dem $_POST-Array stehen.

    Mit freundlichen Grüßen
  6. Autor dieses Themas

    youtvti

    youtvti hat kostenlosen Webspace.

    ich habe alles gepostet

    mit
    if var_dump()($_SERVER["REQUEST_METHOD"] == "POST") {

    funktioniert!:biggrin:
  7. Hi, reden wir von der selben Sprache?

    Das kann nicht funktioniert haben!

    Den bei dem was du gelistet hast wirft PHP eine exception, weil es den code nicht richtig parsen kann.

    Mit freundlichen Grüßen
  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!