我目前在我的项目中使用 pdo_dblib
扩展。
当我在 PHP 5.6
下使用它并在 config.
中设置了 FreeTDS Version 7.0
时,它会给我一个 uniqueidentifier 作为 string
。
当我在 PHP 7.0.8
下使用相同的脚本时,它只会给我一些乱码。
我不想在 SQL
中转换它或稍后在 PHP
中转换它。因为有时它可以是结果中的唯一标识符,有时不是。所以我需要通过完整的结果来转换唯一标识符。
那么是否有任何解决方案可以像在 PHP 5.6
下一样在 PHP 7.0.8
上工作?
最佳答案
正如 Bojan 的回答中提到的拉取请求中所解释的,PHP 7 中出现此问题的原因是您必须指示 PDO 将 GUID 从二进制转换为字符串。
这应该适用于任何为此苦苦挣扎的人。
/** @var \PDO $pdo */
$pdo->setAttribute(\PDO::DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER, true);
关于PHP7 PDO_DBLIB 唯一标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38546817/