Я в настоящее время использую pdo_dblib
расширение в моем проекте.
Когда я использую это под PHP 5.6
с FreeTDS Version 7.0
установить в config.
Это даст мне уникальный идентификатор как string
,
Когда я использую тот же скрипт под PHP 7.0.8
это просто выдает мне искаженное дерьмо.
Я не хочу бросать это в SQL
или преобразовать его позже в PHP
, Потому что иногда это может быть уникальным идентификатором в результате, а иногда нет. поэтому мне нужно пройти через полные результаты для преобразования уникального идентификатора.
Так есть ли решение, чтобы начать работу на PHP 7.0.8
как будто это было под PHP 5.6
?
Похоже, ошибка была введена в какой-то минорной версии PHP7.
Для этой проблемы уже был подан отчет об ошибке: https://bugs.php.net/bug.php?id=72601
и запрос на удаление для возможного исправления:
https://github.com/php/php-src/pull/2001
Как объяснено в запросе на получение, упомянутом в ответе Бояна, причина этой проблемы в PHP 7 заключается в том, что вы должны указать PDO преобразовать GUID из двоичного файла в строку.
Это должно сделать это для тех, кто борется с этим.
/** @var \PDO $pdo */
$pdo->setAttribute(\PDO::DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER, true);