4 Stimmen

PHP MySQLi Prepared-Anweisung funktioniert nicht

EDIT START

Also ich habe das Problem in meinem Code gefunden. Es war die folgende Zeile

if(isset($_REQUEST['faq_submit'])) {

Ich bin mir nicht sicher, was mit dieser Zeile falsch ist? Warum funktioniert sie nicht richtig?

EDIT END

Aus irgendeinem Grund funktioniert meine vorbereitete Anweisung nicht. Es scheint auch keine Fehler im Fehlerprotokoll anzuzeigen. Wahrscheinlich mache ich dort einfach etwas falsch, aber ich bin sicher, dass hier jemand etwas falsches bemerken könnte, was ich getan habe haha... Ich habe versucht, es auf ein paar verschiedene Arten zu beheben und war einfach erfolglos, also ist es immer eine gute Idee hier um Hilfe zu fragen!

Hier ist mein PHP-Code zum Hinzufügen einer Frage

// Erforderliche Konfiguration
include_once('required.php');

// Doppelte Überprüfung, ob die Seite über die Schaltfläche Submit aufgerufen wurde
if(isset($_REQUEST['faq_submit'])) {
    // Daten abrufen, die vom Formular gesendet wurden
    $topic=trim($_REQUEST['faq_topic']);
    $detail=trim($_REQUEST['faq_detail']);
    $name=trim($_REQUEST['faq_name']);
    $email=trim($_REQUEST['faq_email']);

    // Überprüfen, ob alle Formulare ausgefüllt sind
    if(!empty($topic) && !empty($detail) && !empty($name) && !empty($email)) {
        // E-Mail validieren
        if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
            // Vorbereitete Einfügeanweisung
            $stmt = $mysqli->prepare('INSERT INTO forum_question (`topic`, `detail`, `name`, `email`, `datetime`) VALUES (?, ?, ?, ?, ?)');

            // Variablen an Werte binden
            $stmt->bind_param('sssss', $topic, $detail, $name, $email, $datetime);

            // Vorbereitete Anweisung ausführen
            $stmt->execute();

            // Ergebnisse ausgeben
            $html = '×Sie haben erfolgreich eine Frage im FAQ-Board eingereicht.';
            print($html);

            // Verbindungen und Anweisung schließen
            $stmt->close(); // Anweisung
            $mysqli->close(); // MySQLi
        } else {
            // E-Mail-Validierung fehlgeschlagen
            $html = '×Ihre E-Mail war ungültig.';
            print($html);
        }
    } else {
        // Wenn die erforderlichen Elemente nicht ausgefüllt waren, wird Folgendes ausgegeben
        $html = '×Alle Formulare sind erforderlich.';
        print($html);
    }
}

Hier ist die Datei required.php, obwohl ich einige der Anmeldeinformationen entfernt habe.

$datetime=date("m/d/y h:i"); // Datum und Uhrzeit formatieren

// Verbinden
$mysqli = new mysqli('host', 'user', 'pass', 'db');

// Verbindung überprüfen
if (mysqli_connect_errno()) {
    printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
    exit();
}

2voto

philwc Punkte 111

Hast du versucht zu überprüfen, ob irgendwelche Fehlermeldungen abgefangen werden? http://www.php.net/manual/de/mysqli-stmt.error.php

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X