私はUbuntu 16.04上にあり、パッケージphp7.0-sybase(バージョン7.0.18-0ubuntu0.16.04.1)がインストールされています。 FreeTDSのバージョンは0.91(Ubuntuの上で、最新の現在入手可能)がPDO :: DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIERは無視されます
これはこれは、次の私の/etc/odbc.ini
[mssql]
Description = MSSQL Server
Driver = freetds
Database = MY_DB
ServerName = MSSQL
TDS_Version = 8.0
の内容であるPHPで私の/etc/freetds/freetds.conf
[global]
text size = 64512
[mssql]
host = 192.0.1.5
port = 1433
tds version = 8.0
の内容であります私が試しているスクリプト
<?php
$pdo = new PDO('dblib:host=192.0.1.5;port=1433;dbname=MY_DB;charset=UTF-8', 'my_user', 'my_pass');
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$pdo->setAttribute(PDO::DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER, true);
$sql = 'SELECT TOP 1 my_field FROM dbo.my_table';
$stmt = $pdo->prepare($sql);
$stmt->execute();
print_r($all = $stmt->fetchAll());
Ie xpectではなく、私は例えば
バイナリコンテンツを取得しています、GUIDとしてフィールドの内容を見て、私は[my_field] => 8CAFC97B-30C2-4096-9367-9D240085A16E
を見ることを期待し、代わりに私が[my_field] => {ɯ▒▒0▒@▒g▒$▒▒n