2013-08-31 193 views
0

我需要一些帮助,在我的代码中查找错误。我试图用Xammp创建一个数据库。 它给了我这个错误:MySQL语法错误?奇怪的错误

你在你的SQL语法错误;检查位于第1行 (787对应于你的MySQL服务器版本使用附近的正确语法”,‘787’)的手册是我在ResearchCost部分)

这里进入是我的代码:

<?php/*mysql_connect(servername,username,password); */ 
    mysql_connect("localhost","root","admin") or die(mysql_error()); 
    mysql_select_db("EndlessSpace") or die(mysql_error()); 
    $NodeName = $_POST["NodeName"]; 
    $Quadrant = $_POST["Quadrant"]; 
    $ResearchOpts = $_POST["ResearchOpts"]; 
    $Effects = $_POST["Effects"]; 
    $CostOnUpgrade = $_POST["CostOnUpgrade"]; 
    $Influence = $_POST["Influence"]; 
    $ResearchCost = $_POST["ResearchCost"]; 
    $query=mysql_query("INSERT INTO General (NodeName,Quadrant,ResearchOpts,Effects,CostOnUpgrade,Influence,ResearchCost) VALUES ('$NodeName','$Quadrant','$ResearchOpts','$Effects','$CostOnUpgrade',$Influence','$ResearchCost')") or die(mysql_error()); ?> 
+0

可能的重复:http://stackoverflow.com/questions/16607439/mysql-server-version-for-the-right-syntax-to-use-near-id –

+0

从研究成本中删除单引号。我认为它的数据类型是数字型的。不是字符串。 $ Influence只有一个单引号。 $影响'之前添加单引号' –

+1

**警告:**'mysql_'函数自PHP 5.5.0起弃用,并且将来会被删除。相反,[MySQLi](http://www.php.net/manual/en/book.mysqli.php)或[PDO_MySQL](http://www.php.net/manual/en/ref.pdo-应该使用mysql.php)扩展名。 – bansi

回答

1

你已经错过了在$Influence单引号。所以改变你这样的查询

$query=mysql_query("INSERT INTO General (NodeName,Quadrant,ResearchOpts, 
Effects,CostOnUpgrade,Influence,ResearchCost) 
VALUES ('$NodeName','$Quadrant','$ResearchOpts','$Effects','$CostOnUpgrade', 
'$Influence','$ResearchCost')") or die(mysql_error()); ?> 
+0

逗号在那里......但他错过了单引号:) –

+0

哈哈感谢您的帮助! 我觉得这样的白痴看起来太过分了!让我难倒很久! –

+0

Deepu,我编辑了你的答案,使其更具可读性。随意改变它,如果你想。 –

1

你在查询中缺少一个单引号。

VALUES ('$NodeName', 
     '$Quadrant', 
     '$ResearchOpts', 
     '$Effects', 
     '$CostOnUpgrade', 
--->  $Influence', 
     '$ResearchCost') 

此外,请不要在您的查询中盲目插入变量。您的代码容易受到SQL injection的影响,您应该查看转义的用户输入。更好的是,停止使用已弃用的mysql_*函数并移至MySQLiPDO