这是返回的错误:
错误:您的SQL语法出错;检查与您的MySQL服务器版本对应的手册,以便在第1行的“,3000”附近使用正确的语法
这是php文件:
<?php
$doc_root=getcwd();
include "$doc_root/includes/connectsql.php";
$roomType=$_POST[rtypeid];
$roomBed=$_POST[numbed];
$roomPrice=$_POST[price];
$sql="INSERT INTO RoomTypes(ROOM_TYPE,NUM_BEDS,PRICE_PER_NIGHT)VALUES($roomType,$roomBed,$roomPrice)";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
else
{
echo"<script>alert('Record added');</script>";
header("Location:/cpanel.php");
exit();
}
mysqli_close($con);
?>
然后这是提交的表格:
<form action='addRoomType.php' method='post'>
Room Type:<input type=text name='rtype'>
Number of Beds:<input type=text name='num_bed'>
Price per Night:<input type=text name='price'>
<input type='submit' value='submit' name='submit'>
</form>
我第一次遇到错误时不知道该怎么回事
答案 0 :(得分:1)
您的代码中存在多个(可能的)错误。首先,您的数组索引周围没有引号(它应该是$_POST['rtypeid']
而不是$_POST[rtypeid]
。如果您正在处理正确配置的开发/测试服务器,这应该已经导致错误被触发。
其次,您的RoomTypes.PRICE_PER_NIGHT字段是定义为数字类型(INT,SMALLINT,FLOAT等)还是字符串类型(CHAR,VARCHAR等)?
此外,正如您在回答的评论中所述,在处理用户输入时,您应该继续阅读有关php和安全性的调试(SQL注入和可能的跨站点脚本是两个关键字)你应该告知)。
答案 1 :(得分:0)
1)在SQL中添加引号:
VALUES('$roomType','$roomBed','$roomPrice')
2)从POST中转义值以避免SQL injections:
$roomType = mysql_real_escape_string($_POST['rtypeid']);
$roomBed = mysql_real_escape_string($_POST['numbed']);
$roomPrice = mysql_real_escape_string($_POST['price']);