Jak*_*Ols 4 php mysql sql syntax-error sql-insert
我在制作一个简单的表单以将数据插入MySQL表时遇到了一些麻烦.我一直收到这个SQL错误:
"错误:您的SQL语法中有错误;请查看与您的MySQL服务器版本对应的手册,以便在'stock('ItemNumber','Stock')附近使用正确的语法VALUES('#4','3' ')'在第1行"
我的表格HTML是:
<form action="database.php" method="post">
Item Number: <input type="text" name="ItemNumber">
Stock: <input type="text" name="Stock">
<input type="submit">
</form>
Run Code Online (Sandbox Code Playgroud)
而PHP是:
<?php
$con=mysqli_connect("localhost","root","root","inventory");
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql = "INSERT INTO current stock ('ItemNumber', 'Stock')
VALUES
('$_POST[ItemNumber]','$_POST[Stock]'')";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
echo "1 record added";
mysqli_close($con);
?>
Run Code Online (Sandbox Code Playgroud)
试试这个
你不应该在POST周围使用参数引用.你应该在POST中使用它们
$sql = "INSERT INTO `current stock` (ItemNumber, Stock)
VALUES
('".$_POST['ItemNumber']."', '".$_POST['Stock']."' )";
Run Code Online (Sandbox Code Playgroud)
你应该在将变量插入到像这样的mysql之前转义它们
mysqli_real_escape_string.您只需要mysqli_real_escape_string在查询中直接嵌入字符串时使用,但我建议您永远不要这样做.始终尽可能使用参数.