PHP7 PDO_DBLIB 唯一标识符

标签 php sql-server pdo uniqueidentifier

我目前在我的项目中使用 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/

相关文章:

php - 使用 PHP session_id() 作为每个事件 session 的图像的唯一名称?

php - 在 DB 中的值之间进行 SQL 搜索(邮政编码)

PHP登录成员(member)区

php - 从文件导入sql语句时的编码问题

php - 我应该使用列来计算行数还是在 PHP 中计算行数?

PHP远程MySQL数据库连接非常慢

sql-server - SQL Server GROUP BY、SUM 和检索列值

SQL Server 2012 列标识增量在第 7 个条目上从 6 跳到 1000+

java - 在java和sql server中的存储过程中传递列名?

php - PDO 插入 SQL 未执行且没有错误