2016-04-30 9 views
-2

Ich habe vor kurzem versucht, Daten in eine Datenbank hinzuzufügen, (Neu zu PHP), ich habe überblickt, um zu sehen, wo ich falsch gelaufen bin, aber nichts finden kann. Der Fehler ist:PHP - Eingeben von Daten in eine Datenbank

Unknown column 'FUMUKU' in 'field list' 

Code:

$dbhost = 'localhost'; 
$dbuser = 'evocityi_admin'; 
$dbpass = 'password'; 
$database = 'evocityi_stocks'; 
$conn = mysql_connect($dbhost, $dbuser, $dbpass, $database); 
if(! $conn) 
{ 
    die('Could not connect: ' . mysql_error()); 
} 

$Dtime = "30/04/16"; 
$StockName = "FUMUKU"; 
$FUMUKUPrice = 1000; 
$sql = "INSERT INTO stocks". 
     "(Stock,Price, TimeD) ". 
     "VALUES ". 
     "('$StockName,$FUMUKUPrice, $DTime')"; 
mysql_select_db('evocityi_stocks'); 
$retval = mysql_query($sql, $conn); 
if(! $retval) 
{ 
    die('Could not enter data: ' . mysql_error()); 
} 
echo "Entered data successfully\n"; 
mysql_close($conn); 
?> 

SQL Datenbank: https://gyazo.com/fc97b686cfea79ea773d1796e912551e

+1

zitiert wird –

+1

Warnung fehlt! Ihr Code ist anfällig für SQL-Injection-Angriffe! –

+1

mysql_ ist veraltet, es wird bevorzugt, PDO oder mysqli_ zu verwenden. Außerdem ist Ihr Code anfällig für SQL-Injection (wenn die Felder Dtime, StockName oder FUMUKUPrice vom Benutzer geändert werden können) –

Antwort

0

verwenden Es wird Ihnen hilft.

$sql = "INSERT INTO stocks(Stock,Price,TimeD) VALUES ('$StockName','$FUMUKUPrice', '".date('Y-m-d',strtotime($Dtime))."')"; 
0

ich es geschafft, es zu beheben mit:

$sql = "INSERT INTO `stocks` (`Stock`,`Price`, `TimeD`) VALUES ('$StockName','$FUMUKUPrice', '".date('Y-m-d',strtotime($Dtime))."')"; 
0
'$StockName,$FUMUKUPrice, $DTime' 

Sie sollten alle umgeben var iable mit Zitaten:

'$StockName' ,' $FUMUKUPrice' , '$DTime' 

Genau wissen, dass, wenn blind Variablen in eine SQL-Abfrage verketten und keine Anweisungen für die Benutzereingabe der Vorbereitung Ihres Code anfällig für SQL injection macht. Verwenden Sie stattdessen Prepared Statements. Verwenden Sie außerdem die mysqli_*-Funktionen, die mysql_*-Funktionen sind veraltet.

0

Versuchen Sie diese Abfrage, Sie verwenden Qoutes nicht ordnungsgemäß auf den Variablen aufgrund dieser Fehler durch.

$sql = "INSERT INTO stocks". 
     "(Stock,Price, TimeD) ". 
     "VALUES ". 
     "('".$StockName."', '".$FUMUKUPrice."', '".$DTime."')"; 

Um Depretierung und SQL Injection zu vermeiden, sollten Sie PDO oder mysqli verwenden.

0

Sie verwenden mysql_* Funktionen, das ist was falsch ist.

Read the documentation und in Alternativen suchen.

Eine solche Alternative kann sein:

$query = $pdoconnection->prepare(" 
    insert into `stocks` 
    (`Stock`,`Price`,`TimeD`) 
    values (?,?,?) 
"); 
$query->execute([$StockName, $FUMUKUPrice, $Dtime]); 
0

testen

$sql = ("INSERT INTO stocks (Stock,Price, TimeD) 
       VALUES('$StockName', '$FUMUKUPrice', '$DTime')"); 
Verwandte Themen