繁体   English   中英

'A'附近的语法不正确

[英]incorrect syntax near 'A'

选择语句可能有什么问题? 在'A'附近收到一个称为不正确语法的错误

由于我更习惯于在postgreSQL中编写查询,因此我猜测MySQL的语法略有不同。

cmd.CommandText = "WITH CurrentStop AS (SELECT[Stop Id] FROM Stops WHERE[Route Id] = " + 
                  routeId + "AND Serial = " + stopsDriven + ")" +
                  "SELECT A.Firstname, A.Lastname, B.Make, B.Capacity, B.Route, D.Name" +
                  "FROM Driver A, Bus B, CurrentStop C, Stop D" +
                  "WHERE A.Id = " + row[0] + "AND B.[Bus Id] = " + row[1] + "AND C.[Stop Id] = D.[Stop Id]";

顺便说一下,所有输入都仅在系统中,因此不可能发生SQL注入。

尝试执行查询之前,请先打印出查询并仔细检查。 这解决了很大一部分“动态生成的查询出了什么问题?” 我们在这里看到的样式问题。

例如,我会担心两者之间没有空格(不一定是详尽的清单,这些只是我注意到的清单):

  • routeId和以下AND
  • row[0]和以下AND
  • row[1]和以下AND
  • D.Name及以下FROM ;
  • Stop D及其之后的WHERE

这些最后两个是因为肯定有问题,而有可能的变量可能在空格结尾(但不寻常的),固定字符串当然不。 两者都可能导致您看到的特定错误,因为它们将显示为:

D.NameFROM Driver A
Stop DWHERE A.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM