【发布时间】:2013-06-16 23:07:55
【问题描述】:
我在制作一个简单的表单以将数据插入 MySQL 表时遇到了一些麻烦。我不断收到此 SQL 错误:
"错误:您的 SQL 语法有错误;请查看手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 在第 1 行的 'stock ('ItemNumber', 'Stock') VALUES ('#4','3'')' 附近"
我的表单 HTML 是:
<form action="database.php" method="post">
Item Number: <input type="text" name="ItemNumber">
Stock: <input type="text" name="Stock">
<input type="submit">
</form>
而 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);
?>
【问题讨论】:
-
您的网页对 SQL 注入开放。不要这样编码。而是使用存储过程、参数化 SQL 命令并禁止用户输入特殊字符...
-
我也会避免在表格或字段名称中使用空格字符。
-
我知道这是一个老问题,但 Bill Karwin 在这里给出了最好的答案。其他答案是不安全的。
标签: php mysql sql syntax-error sql-insert