MySQL 语法错误?奇怪的错误

Posted

技术标签:

【中文标题】MySQL 语法错误?奇怪的错误【英文标题】:MySQL Syntax error? Strange error 【发布时间】:2013-09-03 20:44:32 【问题描述】:

我需要一些帮助来查找我的代码中的错误。我正在尝试使用 Xammp 创建一个数据库。 它给了我这个错误:

您的 SQL 语法有错误;检查与您的 mysql 服务器版本相对应的手册,以在第 1 行的 ",'787') 附近使用正确的语法 (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());  ?>

【问题讨论】:

可能重复:***.com/questions/16607439/… 从研究成本中删除单引号。我认为它的数据类型是数字一。不是字符串。 $Influence 只有一个单引号。在 $Influence' 之前添加单引号 警告: mysql_ 函数自 PHP 5.5.0 起已弃用,并将在未来删除。相反,应使用 MySQLi 或 PDO_MySQL 扩展名。 @bansi 就在我点击 ENTER 之前 :) 你不应该在使用准备好的语句时遇到这个问题。 【参考方案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());  ?>

【讨论】:

逗号在那里......但他错过了单引号:) 哈哈谢谢你的帮助!我觉得自己像个白痴一样忽略了这一点!让我难过了好久! Deepu,我已编辑您的答案以使其更具可读性。如果您愿意,请随意更改。【参考方案2】:

您的查询中缺少单引号。

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

另外,请不要盲目地在查询中插入变量。您的代码容易受到SQL injection 的攻击,您应该考虑转义用户输入。更好的是,停止使用已弃用的 mysql_* 函数并转到 MySQLiPDO

【讨论】:

以上是关于MySQL 语法错误?奇怪的错误的主要内容,如果未能解决你的问题,请参考以下文章

无法在点击事件时设置离子本地通知(奇怪的语法错误)

Python 2.7.3 中的奇怪语法错误

没有语法错误,但我的程序显示奇怪的数字

由于奇怪的语法,“非套接字上的套接字操作”错误

MySQL 语法错误 |您的 SQL 语法有错误;

请大家帮忙一下 mysql 语法错误