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_*
函数并转到 MySQLi
或 PDO
。
【讨论】:
以上是关于MySQL 语法错误?奇怪的错误的主要内容,如果未能解决你的问题,请参考以下文章