Windows で Tablestore SDK for PHP を使用するときに「チェックサムの不一致」エラーメッセージが返された場合は、64 ビット PHP 7 以降を使用していることを確認してください。最適なパフォーマンスを得るには、PHP 7 を使用することをお勧めします。
問題の説明
Windows で PHP 5.6 を使用して Tablestore SDK for PHP を使用すると、次のエラーメッセージが返されます。
Fatal error: Uncaught exception 'AliyunOTSOTSClientException' with message 'Checksum mismatch. expected:120,actual:-48'考えられる原因
Tablestore は 64 ビット整数を使用します。32 ビット PHP では、String 型のみを使用して 64 ビット整数値を表すことができます。そのため、Tablestore は 32 ビット PHP をサポートしていません。Windows では、PHP 7 より前の PHP バージョンは実際には 64 ビットではありません。
解決策
Windows で Tablestore SDK for PHP を使用するときは、64 ビット PHP 7 以降を使用していることを確認してください。最適なパフォーマンスを得るには、PHP 7 を使用することをお勧めします。
phpinfo() を使用して、PHP 構成情報で アーキテクチャ の値を確認できます。この方法で、PHP バージョンが 64 ビット整数をサポートしているかどうかを確認できます。
アーキテクチャ の値が X86 の場合、現在の PHP バージョンは 32 ビット整数のみをサポートしています。PHP バージョンを 64 ビット PHP 7 以降にアップグレードする必要があります。
アーキテクチャ の値が X64 の場合、現在の PHP バージョンは 64 ビット整数をサポートしており、要件を満たすことができます。