logo
  • Home
  • ソフトウェア
    • アタッシェケースアイコン
      アタッシェケース

      ファイル暗号化ツール(Windows)

    • MarkDown#Editorアイコン
      MarkDown#Editor

      Markdownデュアルエディタ(Windows)

    • OutlineTextアイコン
      OutLineText

      Markdownによるアウトライナー(macOS)

    • OutlineTextアイコン
      BossComing

      一瞬で偽デスクトップに差し替え(Windows)

  • 開発ツール
    • Png2WinIco

      PNGからWindowsICOファイル生成(Windows)

    • SHCode-JP-Zen-Haku

      プログラミング用等幅フォント(Windows, macOS)

    • 秀丸エディタ・日付挿入マクロ

      柔軟な日付挿入可能な「秀丸エディタ」専用マクロ

    • 秀丸エディタ・Markdown強調表示定義ファイル

      「秀丸エディタ」専用の強調表示定義ファイル

  • このサイトについて
  • ブログ
  1. Home
  2. Blog
2019年07月02日 17:33 更新

DynamoDBでNumber型をputItemするときのエラー

hibara

2013年9月22日 15:11 DynamoDB PHP

もはやC++Builder XE4 棚上げです。

いま、興味のあるままにわがままに Amazon EC2でサーバを起ち上げて、NoSQLの一つ、DynamoDBに挑戦しています。ええ、キミだけじゃなく、自分も傷つきまくってます。

「夏だ、クラウドだ!」的な、Amazonでキャッチーな「無料キャンペーン」バナーをたまたま目にしちゃって、をを、これが「お・も・て・な・し」的なお誘いか!とばかり、「じゃあ、やっちゃおうか、今でしょ!」ってサインイン。

もはやブログを開設する感覚でしたよ。ええ、とてもお気軽な感じ。

ところが実際、インスタンスを起ち上げていくと、「じぇじぇじぇ・・・これって完全にイチからサーバ立ち上げるのと一緒じゃ・・・」チョウン、チョモッド?・・・Linuxのコマンドなんて、ほとんど知らねー。めっちゃ、ハードル高杉。

こうなったら、なにがなんでも「倍返しだ!」(無料なのに)とばかりに、DynamoDBでお気軽にKVSでデータベースを組んじゃうぞ!って勢いづいたら、そこでもめっちゃつまずく。大コケ。逆にハードル増し増し。

どうも、データの作成日時をmicrotime(true)で格納しているところでコケているっぽい。

まずは、DynamoDB接続用の設定ファイル、config.phpを別途用意しておきましょう。

config.php
[php]
<?php
return array(
‘includes’ => array(‘_aws’),
‘services’ => array(
‘default_settings’ => array(
‘params’ => array(
‘key’ => ‘********************’,
‘secret’ => ‘********************’,
‘region’ => ‘ap-northeast-1’
)
)
)
);
[/php]

ここからが、そのputItemのコード↓

[php highlight=”16,17″]
//DynamoDBの準備
require_once ‘/var/tmp/inc/vendor/autoload.php’;

use Aws\Common\Aws;

$aws = Aws::factory(‘/var/tmp/inc/config.php’);
$dynamodb = $aws->get(‘dynamodb’);

//データ書き込み
$result =
$dynamodb->putItem(
array(
‘TableName’ => "person",
‘Item’ => array(
‘uuid’ => array( ‘S’ => "hibara" ),
/* ↓ここでコケてるっぽいエラーが返ってくる… */
‘date_create’ => array( ‘N’ => microtime(true)),
‘first_name’ => array( ‘S’ => "Mitsuhiro" ),
‘last_name’ => array( ‘S’ => "Hibara" )
),
‘Expected’ => array(
‘uuid’ => array(
‘Exists’ => false,
),
‘date_create’ => array(
‘Exists’ => false,
)
)
)
);
echo $result;
[/php]

で、いろいろ試行錯誤してみると、めちゃくちゃ初歩的なところでした。

[php]

‘date_create’ => array( ‘N’ => (string)microtime(true)),

[/php]

Number型であっても、値は文字列でないといけない。
そのために、連想配列のKeyに「N」が指定されているというわけ。なに、その仕様。。。

たぶん基本のキでしょうけども、ここでハマっている人がいるかもしれないので、一応メモとして残しておきます。


1 Trackback or Pingback

  • 開発などブログ » Amazon DynamoDB(AWS SDK for PHP 2)のqueryでFatal Error

コメントする     返信コメントをキャンセル(閉じる)

メールアドレスが公開されることはありません。

これらの HTML タグと属性を使用できます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*
*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください。

HiBARA blog

日々の開発作業で気づいたこと共有を。同じところで躓いている人が、 検索で辿り着けたら良いな、というスタンスで記事を書くので不定期更新になります。

Post Categories

  • BizSpark (1)
  • C# (10)
  • C++ (2)
  • C++Builder (2)
  • C++Builder XE4 (1)
  • CoffeeScript (3)
  • DynamoDB (2)
  • Electron (1)
  • Inno Setup (3)
  • iPhone (1)
  • JavaScript (11)
  • jQuery (3)
  • Mac OSX (2)
  • Markdown (2)
  • MarkDown#Editor (5)
  • PHP (7)
  • Qt (5)
  • SHA-3 (2)
  • Smarty (2)
  • アタッシェケース (23)
  • など (2)
  • フォント (1)
  • プログラミング (33)
  • 未分類 (1)

Tags

  • DLL
  • exe
  • Inno Setup
  • NuGet
  • signtool
  • コードサイニング証明
  • サテライトアセンブリ
  • マージ
  • 光コラボレーション
  • 株式会社CL

© 2011-2023 M.Hibara

Facebook icon
Twitter icon
GitHub icon
Qiita icon