[英]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.