在我的PHP代码中获取sql语法错误

时间:2012-07-08 05:42:21

标签: php mysql syntax-error

我收到的错误是“您的SQL语法出错;请查看与您的MySQL服务器版本对应的手册,以便在第2行附近使用正确的语法”

这是我的代码:

<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>&nbsp;<select name="seat">
<option>Window Seat</option>
<option>Aisle Seat</option>
</select></td>
<td>&nbsp;<select name="zone">
<option>Smoking</option>
<option>Non-Smoking</option>
</select></td>
<td>&nbsp;<select name="meal">
<option>Vegetarian</option>
<option>Non-Vegetarian</option>
</select></td>
<td>&nbsp;<input type="text" name="medical"/></td>
<td>&nbsp;<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());

进一步的代码是:

 header("Location: print.php");

$dnew=$d["availibilty"]-1;
mysql_query("update reservation set availibility=".$dnew."");
header("Location: print.php");
 }
?>
</div>

我无法找到错误。这是用于航空公司在线预订的PHP代码

4 个答案:

答案 0 :(得分:1)

您的错误就在这一行:

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"]."') ")

答案 1 :(得分:0)

如果适合您,请尝试以下。

$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());

答案 2 :(得分:-1)

这将帮助 :(最佳做法)
将查询字符串放入变量,然后回显查询以检查是否将正确的查询传递给mysql_query()

在phpmyadmin(或你的mysql编辑器)中获得Query打印run it之后。 它会告诉你深层次的错误。

答案 3 :(得分:-1)

似乎你没有指出包含错误的正确代码,因为我在你的SQL中找不到“rs)”。

确保为我们提供正确的SQL请求。