大家都是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语法问题。
任何人都知道我必须做些什么才能让它工作,所以我可以稍微缩短代码?
答案 0 :(得分:3)
丢失报价; $bar = "baz"; qq(foo $bar)
将为foo baz
,而qq(foo "$bar")
会为您提供foo "baz"
,在这种情况下您不需要{。}}。
但是,特别是对于SQL,这种方法有些危险。在你的情况下它是好的,因为你自己设置$timeframe
的值;但如果有最微弱的用户输入可能性,那么你可以拥有Bobby Tables incident。具体来说,研究那里的Perl page。