在我的php代码中获取sql语法错误
我在第2行看到这样一个错误:“您的SQL语法有一个错误;请查看与您的MySQL服务器版本相对应的手册,以获得在'rs'附近使用的正确语法” 这是我的密码:在我的php代码中获取sql语法错误,php,mysql,syntax-error,Php,Mysql,Syntax Error,我在第2行看到这样一个错误:“您的SQL语法有一个错误;请查看与您的MySQL服务器版本相对应的手册,以获得在'rs'附近使用的正确语法” 这是我的密码: <div id="main" > <form name="form1" method="POST" > <div id="input" align="center"> <table width="700" border="1"> <tr> <td>Seat Prefere
<div id="main" >
<form name="form1" method="POST" >
<div id="input" align="center">
<table width="700" border="1">
<tr>
<td>Seat Preference</td>
<td>Zone</td>
<td>Meal Preference</td>
<td>Medical Considerations</td>
<td>Dietary Considerations</td>
</tr>
<tr>
<td> <select name="seat">
<option>Window Seat</option>
<option>Aisle Seat</option>
</select></td>
<td> <select name="zone">
<option>Smoking</option>
<option>Non-Smoking</option>
</select></td>
<td> <select name="meal">
<option>Vegetarian</option>
<option>Non-Vegetarian</option>
</select></td>
<td> <input type="text" name="medical"/></td>
<td> <input type="text" name="dietary"/></td>
</tr>
</table>
</div>
<div id="button" align="center" >
<input type="submit" value="Take Fare and Proceed" name="submit"/>
</div>
</form>
<?php
mysql_connect("127.0.0.1","root","");
mysql_select_db("cmc");
if (isset($_POST["submit"]))
{
$r=mysql_query("select * from reservation where transid=".$_REQUEST["id"].""); $d=mysql_fetch_assoc($r);
then query is::
mysql_query("INSERT INTO
manifest(`day`,`month`,`year`,`class`,`sector`,`seat`,`zone`,`meal`,`medical`,`dietary`,`fare`)
VALUES(".$d["day"].",'".$d["month"]."','".$d["year"]."','".$d["class"]."','".$d["sector"]." ','".$_POST["seat"]."','".$_POST["zone"]."','".$_POST["meal"]."','".$_POST["medical"]."','" .$_POST["dietary"]."',".$d["fare"].")
") or die(mysql_error());
座位偏好
区
用餐偏好
医学考虑
饮食考虑
靠窗座位
靠过道的位置
吸烟
无烟区
素食主义者
非素食者
这将帮助:(最佳实践)
将查询字符串放入一个变量中,并回显该查询,以检查是否将正确的查询传递给mysql\u Query()
在获得打印的查询后在phpmyadmin(或ur mysql编辑器)中运行它。
它将向您显示深层错误。您似乎没有指出包含错误的正确代码,因为我在SQL中找不到“rs”
请确保为我们提供了正确的SQL请求。您的错误在这一行:
mysql_query("INSERT INTO
manifest(`day`,`month`,`year`,`class`,`sector`,`seat`,`zone`,`meal`,`medical`,`dietary`,`fare`)
VALUES(".$d["day"].",'".$d["month"]."','".$d["year"]."','".$d["class"]."','".$d["sector"]." ','".$_POST["seat"]."','".$_POST["zone"]."','".$_POST["meal"]."','".$_POST["medical"]."','" .$_POST["dietary"]."',".$d["fare"].")
")
请注意,它的最后一部分如下所示:
"',".$d["fare"].") ")
但该值周围没有引号。因此,您需要将其更改为:
"','".$d["fare"]."') ")
如果对你有效,请尝试下面的方法
$r=mysql_query("select * from reservation where transid='".$_REQUEST['id']."'"); $d=mysql_fetch_assoc($r);
编辑:
mysql_query("INSERT INTO
manifest(`day`,`month`,`year`,`class`,`sector`,`seat`,`zone`,`meal`,`medical`,`dietary`,`fare`)
VALUES('".$d['day']."','".$d['month']."','".$d['year']."','".$d['class']."','".$d['sector']." ','".$_POST['seat']."','".$_POST['zone']."','".$_POST['meal']."','".$_POST['medical']."','" .$_POST['dietary']."','".$d['fare']."')") or die(mysql_error());
对PHP一点也不熟悉,但可以将.dnew替换为.dnewCode。编写时,将很容易受到SQL注入的攻击,这在生产应用程序中是完全不可接受的。这是因为您直接将用户输入粘贴到SQL查询中。您可能应该使用带有参数绑定的mysqli
()。请停止使用古老的mysql_*函数编写新代码。它们不再得到维护,社区已开始恢复。相反,您应该学习准备好的语句,并使用或。如果你想学习,@Dennis所说的将解决你的问题(缺少引号),DCoder所说的是很好的建议。考虑它,即使它是一个额外的工作相同的问题“你在SQL语法中有一个错误,检查对应于你的MySQL服务器版本的手册,以便在第2行使用‘RS’附近的正确语法。”
mysql_query("INSERT INTO
manifest(`day`,`month`,`year`,`class`,`sector`,`seat`,`zone`,`meal`,`medical`,`dietary`,`fare`)
VALUES('".$d['day']."','".$d['month']."','".$d['year']."','".$d['class']."','".$d['sector']." ','".$_POST['seat']."','".$_POST['zone']."','".$_POST['meal']."','".$_POST['medical']."','" .$_POST['dietary']."','".$d['fare']."')") or die(mysql_error());