在SQL
问题描述:
我试图使用LIKE操作在SQL
String camp= nomePesquisa.getValue();
String ql = "select from pessoal where nome_Pessoa like ""'%"+camp+"%'" "";
进行查询,并提供了以下错误
在该行 多个标记串查询报价问题“” “”,删除此 令牌
答
试试这个
String ql = "select * from pessoal where nome_Pessoa like '%"+camp+"%'+ ";
你已经投入了很多quetas,但是如果你因为某种原因需要他们用蜜蜂串起来,你应该逃脱他们\"
。
P.S.你忘了输入您想选择
Select * FROM table
或SELECT col1,col2 FROM TABLE
P.S.S.什么请不要像这样查询参数,因为这对于Query Injection来说是一个简单的方法。
答
拆除该行所有"
:
String ql = "select from pessoal where nome_Pessoa like '%"+camp+"%'+ ";
你是不是串联任何那里。
答
请使用以下方法来删除不必要的报价:
String ql = "select from pessoal where nome_Pessoa like '%"+camp+"%'+ ";
此外,您还可以使用一些escape
字符。
答
你可以简单地写为
String ql = "select from pessoal where nome_Pessoa like '%" + camp + "%'";
答
更改下面的代码
String ql = "select from pessoal where nome_Pessoa like '%"+camp+"%'+ ";
你错过了加运算
答
有导致所有问题一个基本的错误:你不不使用参数化查询。这将a)保护您的代码免受SQL注入攻击,并且b)让您的SQL更易于编写。
在我的首选编程语言,C#,它是这样的:
"select from pessoal where nome_Pessoa like @name"
哪里@name
是你必须在传递参数的名称
它似乎根据你的代码正在使用Java。 This可能会帮助你。
'String ql =“从pessoal中选择,其中nome_Pessoa像'%'+ camp +”%'“;' –
有很多引号正在进行。另外,要小心[Bobby Tables](http://bobby-tables.com/)。 – Amadan
你正在使用什么_scripting_语言?有人可以帮助您避免* SQL注入攻击*的缺陷。你不应该根据下面的答案解决这个问题,请采取@Patrick Hofman的建议并使用一个参数。 – christiandev