在sql中引用字符串查询的问题

时间:2015-07-13 08:05:09

标签: sql

我正在尝试使用LIKE运算符进行查询

String camp= nomePesquisa.getValue();
String ql = "select from pessoal where nome_Pessoa like ""'%"+camp+"%'"  "";

,它会出现以下错误

此行有多个标记      - 令牌上的语法错误"""",删除它      令牌

6 个答案:

答案 0 :(得分:3)

导致所有问题的基本错误是:您没有使用参数化查询。这将a)保护您的代码免受SQL注入,并且b)使您的SQL更容易编写。

在我首选的编程语言C#中,它看起来像这样:

"select from pessoal where nome_Pessoa like @name"

其中@name是您必须传递的参数的名称。

根据您的代码,您似乎正在使用Java。在这种情况下,This可能对您有所帮助。

答案 1 :(得分:1)

试试这个

String ql = "select * from pessoal where nome_Pessoa like '%"+camp+"%'+  ";

你已经投入了许多quetas,但是如果你因为某种原因需要它们在字符串中,你应该逃避它们\"

P.S。你忘了键入你想要选择的内容

Select * FROM tableSELECT col1,col2 FROM TABLE

P.S.S。不要将参数放在查询中,因为这是Query Injection的简单方法。

答案 2 :(得分:1)

从该行中删除所有"

String ql = "select from pessoal where nome_Pessoa like '%"+camp+"%'+  ";

你不能在那里连接任何东西。

答案 3 :(得分:1)

请使用以下内容删除不必要的引号:

String ql = "select from pessoal where nome_Pessoa like '%"+camp+"%'+  ";

此外,您可以使用一些escape个字符。

答案 4 :(得分:1)

您可以简单地将其写为

String ql = "select from pessoal where nome_Pessoa like '%" + camp + "%'";

答案 5 :(得分:0)

更改以下代码

String ql = "select from pessoal where nome_Pessoa like '%"+camp+"%'+  ";

你错过了加号运算符