2016-07-23 13 views
1

私のプロジェクトでは現在pdo_dblib拡張機能を使用しています。 PHP 5.6FreeTDS Version 7.0を設定してconfig.に設定すると、ユニークな識別子がstringになります。 私はPHP 7.0.8の下で同じスクリプトを使用すると、ちょうど私にいくつかのひどいたわごとが与えられます。 SQLにキャストしたくない場合は、後でPHPに変換してください。時にはそれが結果の中でユニークな識別子になることがあり、時々そうでないことがあるからです。私はuniqueidentifierを変換するために完全な結果を調べる必要があります。PHP7 PDO_DBLIB uniqueidentifier

PHP 7.0.8で作業するための解決方法は、PHP 5.6のようですか?

+0

あなたのスクリプトは何ですか? –

答えて

0

バグがPHP7のマイナーバージョンで導入されたようです。

  • 7.0.4が完全に機能します。手動でphpbrewでコンパイルできます。
  • 7.0.8この実装は現在壊れています。

バグレポートがすでにありましたが、ここで、この問題のために提出された:https://bugs.php.net/bug.php?id=72601

し、潜在的な修正のためのプル要求: https://github.com/php/php-src/pull/2001

2

としては、ボヤンの答えで述べたプルリクエストで説明しましたPHP 7のこの問題の原因は、GUIDをバイナリから文字列に変換するようにPDOに指示する必要があることです。

これは、これに苦労している人にとっては、これを行う必要があります。

/** @var \PDO $pdo */ 
    $pdo->setAttribute(\PDO::DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER, true); 
+0

それは本当にトリックでした。それを指摘してくれてありがとう。 – user2432612