通过php的Sql插入错误

通过php的Sql插入错误,php,mysql,Php,Mysql,当我试图通过php编码在sql表中插入值时,收到一条错误消息。即使我也再次创建了一个新的数据库,但它不起作用。所以我需要你的帮助来解决它。我的错误信息如下所示: 插入失败!您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,了解正确的版本 要使用的语法 近使用率、有效性、价格)值('indranil','som','WWBIPL_NE_4GB','512kbps','4GB','3' 在1号线 我的html代码如下所示: <html> <head> <

当我试图通过php编码在sql表中插入值时,收到一条错误消息。即使我也再次创建了一个新的数据库,但它不起作用。所以我需要你的帮助来解决它。我的错误信息如下所示:

插入失败!您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,了解正确的版本 要使用的语法 近使用率、有效性、价格)值('indranil','som','WWBIPL_NE_4GB','512kbps','4GB','3' 在1号线

我的html代码如下所示:

<html>
<head>
<body>
<form action="insert.php" method="post">
<select name="package">
<option value="WWBIPL_NE_4GB">WWBIPL_NE_4GB</option>
<option value="WWBIPL_NE_6GB">WWBIPL_NE_6GB</option>
</select>
Firstname:<input type="text" name="firstname">
Lastname:<input type="text" name="secondname">
Email:<input type="text" name="email">
Address:<input type="text" name="address">
<input type="submit">
</form>
</body>
</head>
</html>

WWBIPL_NE_4GB
WWBIPL_NE_6GB
名字:
姓氏:
电邮:
地址:
这是我的PHP代码

<?php
$fstname=$_POST["firstname"];
$sndname=$_POST["secondname"];
$price=$_POST["package"];
if($price=="WWBIPL_NE_4GB")
{
$bandwidth="512kbps";
$usage="4GB";
$validity="30days";
$price1="499";
}
else if($price=="WWBIPL_NE_6GB")
{
$bandwidth="512kbps";
$usage="6GB";
$validity="90days";
$price1="1280";
}
$servername="localhost";
$username="root";
$password="";
$dbname="stock";
$conn=mysqli_connect($servername,$username,$password,$dbname);
if(!$conn)
{
die("Connection Failed".mysqli_error($conn));
}   $sql="insertintoisuue(Firstname,Lastname,Package,Bandwidth,Usage,Validity,Price)values('$fstname','$sndname','$price','$bandwidth','$usage','$validity','$price1')";
if(mysqli_query($conn,$sql))
{
echo"Data inserted successfully";
}
else
{
echo"Insertion failed".mysqli_error($conn);
}
mysqli_close($conn);
?>
用法
是mysql中的一个常见用法。您必须使用倒勾来转义它,或者最好重命名您的列

$sql="insert into isuue(Firstname,Lastname,Package,Bandwidth,`Usage`,Validity,Price)values('$fstname','$sndname','$price','$bandwidth','$usage','$validity','$price1')";
除此之外,您还应使用X.L.Ant提到的准备好的陈述和理由,您应将
插入到…
中,并用空格填写。

替换:

$sql="insertintoisuue(Firstname,Lastname,Package,Bandwidth,Usage,Validity,Price)values('$fstname','$sndname','$price','$bandwidth','$usage','$validity','$price1')";
与:


好吧,
insertintoisuue
这样写会更好:
insertintoisuue
。除此之外,你的SQL很容易被注入。我已经这样做了。这是一个打印错误,也可能是打印错误。我已经将insert写入了isuue(Firstname、Lastname、Package、Bandwidth、
Usage
、Validity、Price)值(“$fstname”、“$sndname”、“$Price”、“$Bandwidth”、“$Usage”、“$Validity”、“$price1”)和空格
$sql="INSERT INTO isuue (Firstname, Lastname, Package, Bandwidth, Usage,
          Validity, Price ) 
      VALUES ('$fstname', '$sndname',' $price','$bandwidth',  
          $usage','$validity','$price1')";