Java/Android。int=文本?

Java/Android。int=文本?,java,android,database,postgresql,Java,Android,Database,Postgresql,我犯了一个奇怪的错误,但我不明白为什么会出现这个错误。基本上,我使用SELECT查询从数据库中获取一些数据,它会生成一个错误。 该错误与“WHERE traseu=“+traseu+”;”有关。我的PostgreSQL数据库中的列traseu的类型为“text” protected void onProgressUpdate(String... values) { super.onProgressUpdate(values); String tr

我犯了一个奇怪的错误,但我不明白为什么会出现这个错误。基本上,我使用SELECT查询从数据库中获取一些数据,它会生成一个错误。 该错误与“WHERE traseu=“+traseu+”;”有关。我的PostgreSQL数据库中的列traseu的类型为“text”

protected void onProgressUpdate(String... values) {
            super.onProgressUpdate(values);

            String traseu = values[0];
            String sql = "SELECT id, ST_x(geom) AS x, ST_y(geom) AS y, tip AS tr, traseu, denumire, adresa, poza FROM modul WHERE traseu = " + traseu + ";";
它给了我以下错误:

01-08 15:30:05.435  23635-23635/com.example.nsomething E/com.example.nsomething.main.Harta﹕ query failed to execute: org.postgresql.util.PSQLException: ERROR: operator does not exist: text = integer
    Hint: No operator matches the given name and argument type(s). You might need to add explicit type casts.
    Position: 112

任何提示。

尝试将参数用单引号括起来

例:
…其中traseu='“+traseu+”;“

尝试将参数用单引号括起来

例:
…其中traseu='“+traseu+”;“

尝试将参数用单引号括起来

例:
…其中traseu='“+traseu+”;“

尝试将参数用单引号括起来

例:
…其中traseu='“+traseu+”;“

不将用户提供的值连接到SQL文本中

这是危险和错误的:

String sql = "SELECT ... WHERE traseu = " + traseu + ";";
                                        ^^^^^^^^^^^^^^^
                                        Bad, don't do this
对于一个整数来说,这并不危险,但它仍然是一个可怕的习惯。不要这样做

相反,你应该这样做

见:


不要将用户提供的值连接到SQL文本中

这是危险和错误的:

String sql = "SELECT ... WHERE traseu = " + traseu + ";";
                                        ^^^^^^^^^^^^^^^
                                        Bad, don't do this
对于一个整数来说,这并不危险,但它仍然是一个可怕的习惯。不要这样做

相反,你应该这样做

见:


不要将用户提供的值连接到SQL文本中

这是危险和错误的:

String sql = "SELECT ... WHERE traseu = " + traseu + ";";
                                        ^^^^^^^^^^^^^^^
                                        Bad, don't do this
对于一个整数来说,这并不危险,但它仍然是一个可怕的习惯。不要这样做

相反,你应该这样做

见:


不要将用户提供的值连接到SQL文本中

这是危险和错误的:

String sql = "SELECT ... WHERE traseu = " + traseu + ";";
                                        ^^^^^^^^^^^^^^^
                                        Bad, don't do this
对于一个整数来说,这并不危险,但它仍然是一个可怕的习惯。不要这样做

相反,你应该这样做

见:


哇,这就是当你累了,注意力不够集中时会发生的事情。谢谢你,我会把你的答案标记为我一直在寻找的答案!请不要告诉别人这样做!在这种情况下,使用int是安全的,但之后他们会使用字符串,Bobby Tables将变得悲伤。哇,这就是当你累了,注意力不够集中时会发生的事情。谢谢你,我会把你的答案标记为我一直在寻找的答案!请不要告诉别人这样做!在这种情况下,使用int是安全的,但之后他们会使用字符串,Bobby Tables将变得悲伤。哇,这就是当你累了,注意力不够集中时会发生的事情。谢谢你,我会把你的答案标记为我一直在寻找的答案!请不要告诉别人这样做!在这种情况下,使用int是安全的,但之后他们会使用字符串,Bobby Tables将变得悲伤。哇,这就是当你累了,注意力不够集中时会发生的事情。谢谢你,我会把你的答案标记为我一直在寻找的答案!请不要告诉别人这样做!在这种情况下,使用int是安全的,但之后他们会使用字符串,Bobby Tables将变得悲伤。帮自己一个忙,读这个帮自己一个忙,读这个帮自己一个忙,读这个帮自己一个忙,读这个同意,我很累,得了重感冒,没有注意一个简单的SQL查询,完全忘记了SQL注入,谢谢你的提醒。同意,我累了,得了重感冒,没有注意简单的SQL查询,完全忘记了SQL注入,谢谢你的提醒。同意,我累了,得了重感冒,没有注意简单的SQL查询,完全忘记了SQL注入,谢谢你的提醒。同意,我很累,得了重感冒,没有注意简单的SQL查询,完全忘记了SQL注入,谢谢你的提醒。