Postgre SQL+PHP在fieldv int4上返回字符串类型的数据



所以我遇到了大问题。在我的基础上,我有一个类型为int4的字段。我只是像一样简单地查询

SELECT * FROM "Cities" 

如果我做var_dump(pg_fetch_array($result, NULL, PGSQL_ASSOC));,我可以看到我的字段id(int4)**(字符串)**id。为什么它会像字符串一样返回所有值?谢谢

不同的PostgreSQL驱动程序呈现数据库中提取数据的方式不同
更具体地说,在某些情况下只使用字符串。

解决此问题的最快方法是使用如下比较:
($id == 5) // true而不是
($id === 5) // false
假设$id="5";

也许您的驱动程序也可以调整为不仅返回字符串,还返回整数
如果你提供特定于驱动程序的信息,也许有人可以帮助你对驱动程序进行微调。

如果你正在使用PDO,那么这些将有所帮助:

$pdo->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

第二行与字符串无关,但建议使用。

最新更新