すべてのプロダクト
Search
ドキュメントセンター

Tablestore:Tablestore SDK for PHP を使用中に「Checksum mismatch」エラーメッセージが返された場合の対処方法

最終更新日:Apr 30, 2026

Windows 上で Tablestore SDK for PHP を使用中に「Checksum mismatch」エラーが表示される場合は、PHP 7 より前のバージョン(実質的に Windows 上では 32 ビット)を使用している可能性があります。この問題を解決するには、64 ビット版の PHP 7 以降にアップグレードしてください。

問題の説明

Windows 上で PHP 5.6 を使用して Tablestore SDK for PHP を実行すると、次のエラーが発生します。

Fatal error: Uncaught exception 'AliyunOTSOTSClientException' with message 'Checksum mismatch. expected:120,actual:-48'

原因

これは SDK のバグではなく、PHP エコシステムに存在する既知の制限です。Tablestore は内部で 64 ビット整数を使用しています。CPU、OS、Web サーバー、および PHP バイナリからなる 32 ビットプラットフォーム上では、PHP が 64 ビット整数を文字列としてしか表現できず、チェックサム計算の結果が不正確になります。

Windows では、PHP 7 より前のバージョンは、基盤となる OS が 64 ビットであっても、実際には 64 ビットではありません。

ソリューション

警告: Tablestore は 32 ビット版 PHP をサポートしていません。Windows では、PHP 7 より前のバージョンはサポート対象外となります。

64 ビット版の PHP 7 以降にアップグレードしてください。パフォーマンスを最適化するため、PHP 7 の使用を推奨します。現在使用している PHP のアーキテクチャを確認するには、phpinfo() を実行し、出力内の Architecture フィールドを確認します。

  • Architecture: X86 — PHP が 32 ビットです。64 ビット版の PHP 7 以降にアップグレードしてください。

  • Architecture: X64 — PHP はすでに 64 ビット整数をサポートしています。この場合、問題は他の要因に起因しています。