【发布时间】:2012-07-24 18:53:31
【问题描述】:
我有一个函数,它接受一个数组并根据数组的键/值对创建一个 SQL 语句。例如:
name=>SomeKittens
会变成
(`name`) VALUES ('SomeKittens')
唯一的问题是当我使用 MySQL 字符串函数时,例如 NOW()。
creation_date=>NOW()
变成
(`creation_date`) VALUES ('NOW()')
请注意,NOW() 已转义。有什么方法可以检测该值是否是 MySQL 字符串函数? (当然除了$value === "NOW()")
我正在使用 Joomla DBO,但也对 PDO/MySQLi 解决方案持开放态度。
【问题讨论】:
-
NOW()没有转义,但它是一个文字字符串。 -
你如何区分
NOW()是一个函数,NOW()是一个硬编码的 5 字符文字字符串?您可能需要在键/值对中手动提供更多元数据以指示如何解释值,例如name=>STRING:SomeKittens和creation_date=>FUNC:NOW()
标签: php mysql joomla joomla-dbo