我最近试图将数据添加到数据库中,(对PHP新手),我已经看了看我哪里出错,但找不到任何东西。错误是:
Unknown column 'FUMUKU' in 'field list'
代码:
$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);
?>
答案 0 :(得分:0)
我设法使用以下方法修复它:
$sql = "INSERT INTO `stocks` (`Stock`,`Price`, `TimeD`) VALUES ('$StockName','$FUMUKUPrice', '".date('Y-m-d',strtotime($Dtime))."')";
答案 1 :(得分:0)
i = [a,b,c,d,e,f,g,h]
random.shuffle(i)
j = [1,2,3,4,5,6,7,8]
del j[j.index(i[0])]
random.shuffle(i)
del j[j.index(i[0])]
你应该用引号包围每个变量:
'$StockName,$FUMUKUPrice, $DTime'
要知道,当盲目地将变量连接到SQL查询而不是为用户输入准备语句时,会使您的代码容易受到SQL injection的攻击。请改用Prepared Statements。另外,使用'$StockName' ,' $FUMUKUPrice' , '$DTime'
函数,不推荐使用mysqli_*
函数。
答案 2 :(得分:0)
尝试此查询,由于此错误,您没有正确使用qoutes变量。
$sql = "INSERT INTO stocks".
"(Stock,Price, TimeD) ".
"VALUES ".
"('".$StockName."', '".$FUMUKUPrice."', '".$DTime."')";
为避免弃用和SQL注入,您应该使用PDO或mysqli。
答案 3 :(得分:0)
您正在使用mysql_*
功能,这是错误的。
Read the documentation并研究替代方案。
一种替代方案可能是:
$query = $pdoconnection->prepare("
insert into `stocks`
(`Stock`,`Price`,`TimeD`)
values (?,?,?)
");
$query->execute([$StockName, $FUMUKUPrice, $Dtime]);
答案 4 :(得分:0)
使用它可以帮助你。
$sql = "INSERT INTO stocks(Stock,Price,TimeD) VALUES ('$StockName','$FUMUKUPrice', '".date('Y-m-d',strtotime($Dtime))."')";
答案 5 :(得分:0)
试试这个
$sql = ("INSERT INTO stocks (Stock,Price, TimeD)
VALUES('$StockName', '$FUMUKUPrice', '$DTime')");