mysql和perl - 将变量添加到查询中

时间:2013-11-22 00:33:33

标签: mysql perl

大家都是mysql和perl gurus!

我的代码看起来像     $ store = qq(INSERT INTO main(release_date)VALUES(DATE_ADD(NOW(),INTERVAL 1 DAY))

完美无缺。问题是我需要找到一种方法来使用变量而不是“INTERVAL 1 DAY”。此值来自表单,有大约12个选项(即:1天,2天,1周,2周)。

我目前正在使用基于表单变量的12种不同的if / elsif条件,因此现在的代码非常庞大。

我正试图让这样的事情发挥作用     var timeframe =“”;     if($ data {date_field} ==“1周”)     {         $ timeframe =“1周”;     }     。     。         $ store = qq(INSERT INTO main(release_date)VALUES(DATE_ADD(NOW(),INTERVAL“$ timeframe”))

但它错误地说我有MySQL语法问题。

任何人都知道我必须做些什么才能让它工作,所以我可以稍微缩短代码?

1 个答案:

答案 0 :(得分:3)

丢失报价; $bar = "baz"; qq(foo $bar)将为foo baz,而qq(foo "$bar")会为您提供foo "baz",在这种情况下您不需要{。}}。

但是,特别是对于SQL,这种方法有些危险。在你的情况下它是好的,因为你自己设置$timeframe的值;但如果有最微弱的用户输入可能性,那么你可以拥有Bobby Tables incident。具体来说,研究那里的Perl page