我的SQL语法中出现未知错误

时间:2011-06-28 15:43:46

标签: php mysql sql mysql-error-1064

希望有人可以帮助我。我所要做的就是将记录插入数据库,但我不断收到消息

  

您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在'order(pid,uid,projecttitle,username,amount,odate)值附近使用正确的语法(,,'','','6-2'在行我的页面上有1个。

这是代码的主要部分。对于能帮助我的人,我将不胜感激。

<?
extract($_REQUEST);
//print_r($_REQUEST);
//query fetch user & project info
//$queryorder="select * from project p where p.pid='".$id."'";
$queryorder="select * from  users u,project p where p.pid='".$id."' and u.uid='".$_SESSION['key']."'";
$resultorder=executequery($queryorder,$link);
$rowo=mysql_fetch_assoc($resultorder);

//print_r($rowo);

//get today date
$createddate=date("n-j-Y");

//order
$order="insert into order (pid,uid,projecttitle,username,amount,odate) 
       values (".$rowo['pid'].",".$rowo['uid'].",'".$rowo['projectname']."','".$rowo['username']."',".$rowo['price'].",'".$createddate."')"; 
mysql_query($order) or die(mysql_error());

//end of insert order query
?>
<? //headtag.php conatain all javascript & css files
 include('headtag.php'); 
?>
<body>

4 个答案:

答案 0 :(得分:4)

ORDER是一个mysql关键字。试试这个:

INSERT INTO `order` ...

答案 1 :(得分:2)

order是一个关键字。你需要用反引号来逃避它。

insert into `order` (pid,uid,projecttitle,username,amount,odate)...

答案 2 :(得分:0)

您必须为每列提供一个值。

(,,'','',,'6-2'

你显然没有pid,uid和amount的值。

答案 3 :(得分:-2)

试试这个:(您要为该查询提供空值)

$order="insert into order (pid,uid,projecttitle,username,amount,odate) 
       values (".(int)$rowo['pid'].",". (int)$rowo['uid'].",'".$rowo['projectname']."','".$rowo['username']."',". (float)$rowo['price'].",'".$createddate."')"; 
mysql_query($order) or die(mysql_error());

导致mysql语法错误的第二件事是表名 - order是mysql中的保留关键字,所以你需要引用它。然后查询的开头是:

  

INSERT INTO`order`(...