繁体   English   中英

在mysql查询中传递String参数时无输出

[英]Getting no output while passing String parameters in mysql query

在下面给出的这两个查询中,第一个查询成功运行并显示结果,但是在运行第二个查询时,我没有输出,也没有错误。

所以任何人都可以解释一下为什么我在第二个查询中没有得到输出。

String firstdate="2014-11-01";
String lastdate="2014-11-30";

//1 query       
getschedule=con.getreader_schedule("SELECT startTime,endtime,available,comments FROM   
reader_available_time WHERE startTime BETWEEN '2014-11-01' AND '2014-11-30' AND        
reader_id="+Integer.parseInt("136"));  

 //2 query
 getschedule=con.getreader_schedule("SELECT startTime,endtime,available,comments FROM
 reader_available_time WHERE startTime BETWEEN "+firstdate+" AND "+lastdate+" AND 
 reader_id="+Integer.parseInt("136"));

好吧,当您执行第二次查询并提供外部参数时,您需要执行以下操作。

getschedule=con.getreader_schedule("SELECT startTime,endtime,available,comments FROM
 reader_available_time WHERE startTime BETWEEN '"+firstdate+"' AND '"+lastdate+"' AND 
 reader_id="+Integer.parseInt("136"));

我认为这应该工作。

理想情况下,应该在查询中使用准备好的语句 ,以避免此类问题。 有关准备好的语句的教程(使用Java),请点击此处


为了解决您现有的查询,

您不会在第二个查询中获得输出,因为在替换变量后,您的查询将是:

WHERE STARTTIME BETWEEN 2014-11-01 AND 2014-11-30

这是错误的,势必会引发异常。 正确的查询应该是

WHERE STARTTIME BETWEEN '2014-11-01' AND '2014-11-30'

这意味着您应该将文本更改为

 WHERE STARTTIME BETWEEN '"+firstdate+"' AND '"+lastdate+"'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM