2012-02-18 265 views
2

我有一个postgres表与包含字符串的列(称为id)。在大多数情况下,字符串包含一个美元字符,如<[email protected]>。 我在php脚本中使用PDO语句来获取此表的相关行和列,包括上述的id列。获取PDO结果集包括美元字符在PHP

但是当我尝试使用来自id列的值时,这样一个id的PDO结果似乎是空的。

Example: 
Expected result: "id":"<[email protected]>", "body":"This is a test", ... 
Real result: "id":"","body":"This is a test", ... 

我想原因是PHP解释字符串中的美元字符作为变量的开始。 是否有任何操作PDO结果的可能性,以便我可以使用包含$的字符串?

+2

看看你的页面源代码。 '<>'里面的内容可能在那里,但在浏览器中没有显示,因为它们被误解为错误的html。它与'$'无关。 – 2012-02-18 21:36:24

+0

或者这是一个双引号字符串内部可变插值的问题,寻找一个以'$'开头的不存在的变量。 – 2012-02-18 21:37:59

+0

您是否已经从没有任何后处理的查询中删除原始结果以确保它不是您的代码解释$符号? – quickshiftin 2012-02-18 21:44:31

回答

0

这很可能不是美元字符,而是三角括号(<>)。查看页面上的源代码以查看它们。

您可以使用htmlentities()将其更改为HTML兼容版本。 (&lt; &gt;