保留PostgreSQL数据库调用中的引号

时间:2013-01-22 03:09:22

标签: php sql postgresql

我的表格同时包含引用和未引用的列名称,例如:username"phoneNumber"。当我查询数据库时,列都显示没有引号。目前,我正在使用:

$array = pg_fetch_all(pg_query($db, $query));

当我从数据库中查询行时,有什么方法可以保留引号吗?

1 个答案:

答案 0 :(得分:1)

你基本上有两种选择。传统的建议是“不要使用引用的标识符,只是小写的一切。”这很好,因为它减少了错误地对错误的表或列运行查询的情况。

另一种选择是始终引用所有内容。这样您就不必担心保留引用,因为它始终存在。

在LedgerSMB中,我们实际上都做到了。引用主要是为了避免SQL注入(我们通过返回引用字符串的函数运行标识符)。但是,我们还对小写名称进行了标准化,以便在psql等运行查询时引用不会导致问题。因此,我的建议是始终如一地使用pg_escape_identifier并对小写标识符进行标准化。