Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 查询中带引号的已准备语句_Java_Mysql_Jdbc - Fatal编程技术网

Java 查询中带引号的已准备语句

Java 查询中带引号的已准备语句,java,mysql,jdbc,Java,Mysql,Jdbc,我正在编写一个准备好的语句,并为表名传递了用户获取的变量字符串 这样就行了 String m_table_variable=“blah”//从请求对象获取 PreparedStatement ps=conn.prepareStatement(“从“+m_table_variable+”中选择*) 虽然这不是 PreparedStatement ps=conn.prepareStatement(“从“+m_table_variable+”中选择*”) 我在这里遗漏了什么琐事?您的第一个甚至无法编译

我正在编写一个准备好的语句,并为表名传递了用户获取的变量字符串

这样就行了

String m_table_variable=“blah”//从请求对象获取

PreparedStatement ps=conn.prepareStatement(“从“+m_table_variable+”中选择*)

虽然这不是

PreparedStatement ps=conn.prepareStatement(“从“+m_table_variable+”中选择*”)


我在这里遗漏了什么琐事?

您的第一个甚至无法编译,您需要使用\“将引号插入字符串文字

PreparedStatement ps = conn.prepareStatement("select * from " +m_table_variable)
试试这个

当然,如果
m\u table\u变量
是一个带有表名的字符串

,则需要使用
\
从字符串中转义
,否则它将无法编译

PreparedStatement ps 
        = conn.prepareStatement("select * from \"m_table_variable\"");

您的问题很简单,第一个示例将三个字符串连接在一起,即
“select*from”
“blah”


第二个示例使用了一个字符串,字面意思是“+m_table_variable+”
“select*from'+m_table_variable+”,该变量未连接到最终字符串。就我个人而言,我不会动态地允许将表名注入到SQL语句中,请仔细阅读SQL注入

嗯…不,那不会编译。它编译得很好。我已经交叉检查过了。然后你没有显示你实际编译的内容。很抱歉,我会提供更多详细信息。还有一些修正。