我的表格同时包含引用和未引用的列名称,例如:username
和"phoneNumber"
。当我查询数据库时,列都显示没有引号。目前,我正在使用:
$array = pg_fetch_all(pg_query($db, $query));
当我从数据库中查询行时,有什么方法可以保留引号吗?
答案 0 :(得分:1)
你基本上有两种选择。传统的建议是“不要使用引用的标识符,只是小写的一切。”这很好,因为它减少了错误地对错误的表或列运行查询的情况。
另一种选择是始终引用所有内容。这样您就不必担心保留引用,因为它始终存在。
在LedgerSMB中,我们实际上都做到了。引用主要是为了避免SQL注入(我们通过返回引用字符串的函数运行标识符)。但是,我们还对小写名称进行了标准化,以便在psql等运行查询时引用不会导致问题。因此,我的建议是始终如一地使用pg_escape_identifier
并对小写标识符进行标准化。