SQLSTATE:42000

时间:2015-06-12 20:40:28

标签: php sql sql-server

我一直在尝试使用PHP将项目插入SQL Server数据库,但我一直收到这个错误:

  

SQLSTATE:42000代码:102消息:[Microsoft] [SQL Server的ODBC驱动程序11] [SQL Server]'<'附近的语法不正确。

这是sql语句:

$query = "INSERT INTO [competitionTrade]
                       ([fullName]
                       ,[date]
                       ,[limitOrder]
                       ,[quantity]
                       ,[tickerSymbol]
                       ,[limitPrice]
                       ,[contingentOrder]
                       ,[contingentQuantity]
                       ,[contingentLimitPrice])
                 VALUES
                       (<$fullName, varchar(50),>
                       ,<$date, datetime,>
                       ,<$limitOrder, varchar(50),>
                       ,<$quantity, int,>
                       ,<$ticSymbol, varchar(50),>
                       ,<$limitPrice, float,>
                       ,<$contingentOrder, varchar(50),>
                       ,<$contingentQuantity, int,>
                       ,<$contingentLimitPrice, float,>)";

我不太确定语句中的语法错误。

3 个答案:

答案 0 :(得分:2)

你的SQL完全坏了:

INSERT INTO table (field1, field2, ...., fieldN)
VALUES (value1, value2, ...., valueN)

你如何编写插入内容:

CREATE

您在表Distinct时指定字段类型。如上所述,如果它有效,你可能容易受到sql injection attacks的影响.l

答案 1 :(得分:1)

map = cool(); #init colormap data = initializeData(); #initialize data plot3(data(:,1),data(:,2),data(:,3),"c" , map(data(:,4))); #doesn't work 是无效的语法。它应该是storeV.removeAt(storeV.find('idCapa', idCapa))

插入语句不需要您输入字段类型,它们只需要您要插入的数据。

我建议阅读如何将变量绑定到查询以防止SQL注入。有关详细信息,请查看here

答案 2 :(得分:1)

您不需要在INSERT语句中设置字段类型。 试试这个:

ByteArrayDataSource ds = new ByteArrayDataSource(file.getInputStream(), file.getContentType());
messageBodyPart.setDataHandler(new DataHandler(ds));