sql >> Databasteknik >  >> RDS >> Mysql

PHP infogar inte innehåll i mySQL-databasen:text, bilder, vad som helst

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ör mysqli_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.

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:



  1. Expdp från Oracle RAC-miljö

  2. Hur man grupperar efter med ett speciellt tillstånd

  3. Välj rader där pivot har ALLA ID

  4. använder mysqli för att förhindra sql-injektion, hur ställer man in NULL eller CURRENT_DATE?