Din kod misslyckas av två anledningar.
- Ditt villkorliga uttalande letar efter ett namngivet element som heter "submit"
- Du försöker köra före satsen. Placera din fråga (
mysqli_query()
)"nedan " värdena och görmysqli_query($dbCon, $userREQ3) or die(mysqli_error($dbCon));
Sidenote:Ändra if ($_POST['submit']) {
till if (isset($_POST['submit'])) {
det är bättre.
och <input type="submit" value="Write Post"/>
till <input type="submit" name="submit" value="Write Post"/>
SQL-injektion:
Din nuvarande kod är öppen för SQL-injektion
. Använd mysqli
med förberedda utlåtanden
, eller PDO med förberedda uttalanden
.
Du har också variabler i kroppen av din kod, som kan skicka odefinierad variabel x vid första sidladdning.
- Använd en ternär operator för detta
- http://php.net/manual/en/language. operators.comparison.php
- Använd detta för alla dina indata/variabler
Som anges (i kommentarerna nedan):Se till att du har anslutit till din databas och använder en mysqli-metod och inte ett annat API.
Olika MySQL API:er blandas inte med varandra. Använd samma MySQL API från anslutning till fråga.
Lägg till felrapportering till toppen av din(a) fil(er) som hjälper dig att hitta fel.
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
Sidenot: Felrapportering bör endast göras i staging och aldrig produktion.
Lyckad fråga eller inte:
För att se om frågan verkligen lyckades eller misslyckades, kontrollera efter fel och använd affected_rows
.
Referenser:
Om du försökte använda bilder, måste en giltig enctype inkluderas i formulärtaggarna.
Beroende på hur/vad du vill infoga för bilderna kan det vara en faktor.
Om du vill infoga bilden som en sökväg är en sak, men att använda den "som en bild", säg en BLOB då det har begränsningar i storlek; använd LONGBLOB och du måste undkomma den datan innan du går in i databasen.
Konsultera:
- https://dev.mysql.com/doc/ refman/5.0/en/blob.html
- http://php.net/manual/ sv/features.file-upload.post-method.php