Ihr Code schlägt aus zwei Gründen fehl.
- Ihre bedingte Anweisung sucht nach einem benannten Element namens "submit"
- Sie versuchen, vor der Anweisung auszuführen. Platzieren Sie Ihre Abfrage (
mysqli_query()
)"unten " die Werte und führen Siemysqli_query($dbCon, $userREQ3) or die(mysqli_error($dbCon));
aus
Nebenbemerkung:Ändere if ($_POST['submit']) {
zu if (isset($_POST['submit'])) {
es ist besser.
und <input type="submit" value="Write Post"/>
an <input type="submit" name="submit" value="Write Post"/>
SQL-Injection:
Ihr aktueller Code ist offen für SQL-Injection
. Verwenden Sie mysqli
mit vorbereiteten Statements
, oder PDO mit vorbereiteten Anweisungen
.
Außerdem haben Sie Variablen im Hauptteil Ihres Codes, die die undefinierte Variable x beim erstmaligen Laden der Seite auslösen können.
- Verwenden Sie dafür einen ternären Operator
- http://php.net/manual/en/language. operator.comparison.php
- Verwenden Sie dies für alle Ihre Eingaben/Variablen
Wie angegeben (in den Kommentaren unten):Stellen Sie sicher, dass Sie sich mit Ihrer Datenbank verbunden haben und eine mysqli-Methode und keine andere API verwenden.
Unterschiedliche MySQL-APIs vermischen sich nicht miteinander. Verwenden Sie dieselbe MySQL-API von der Verbindung bis zur Abfrage.
Fügen Sie Fehlerberichterstattung hinzu an den Anfang Ihrer Datei(en), um Fehler zu finden.
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
Nebenbemerkung: Die Fehlerberichterstattung sollte nur in der Staging- und niemals in der Produktionsumgebung erfolgen.
Erfolgreiche Abfrage oder nicht:
Um zu sehen, ob die Abfrage tatsächlich erfolgreich war oder fehlgeschlagen ist, suchen Sie nach Fehlern und verwenden Sie affected_rows
.
Referenzen:
Wenn Sie versucht haben, Bilder zu verwenden, muss ein gültiger Enctype in die Formular-Tags eingeschlossen werden.
Je nachdem, wie/was Sie für die Bilder einfügen wollten, könnte dies ein Faktor sein.
Wenn Sie das Bild als Pfad einfügen möchten, ist dies eine Sache, aber wenn Sie es "als Bild" verwenden, sagen Sie ein BLOB, dann hat dies Größenbeschränkungen. Verwenden Sie LONGBLOB und Sie müssen diese Daten maskieren, bevor Sie in die Datenbank gehen.
Konsultieren:
- https://dev.mysql.com/doc/ refman/5.0/en/blob.html
- http://php.net/manual/ de/features.file-upload.post-method.php