我有一个函数,它接受一个数组并根据数组的键/值对创建一条SQL语句。例如:查找字符串是否为PHP中的MySQL函数
name=>SomeKittens
它会变成
(`name`) VALUES ('SomeKittens')
唯一的问题是,当我使用MySQL字符串函数如NOW()
。
creation_date=>NOW()
变成
(`creation_date`) VALUES ('NOW()')
注意NOW()
被转义。有什么办法可以检测出这个值是否是一个MySQL字符串函数? (当然,除了$value === "NOW()"
)
我使用的是Joomla DBO,但也开放给PDO/MySQLi解决方案。
NOW()不会被转义,但它是一个文字字符串。 – PeeHaa 2012-07-24 18:55:03
你如何区分'NOW()'是一个函数,'NOW()'是一个硬编码的5字符文字串?您可能需要在键/值对中手动提供更多元数据以指示如何解释该值,例如'name => STRING:SomeKittens'和'creation_date => FUNC:NOW()' – mellamokb 2012-07-24 18:55:22