使用 PHP 在 DynamoDB 中插入浮点数


Inserting float in DynamoDB with PHP

我正在从MongoDB转向DynamoDB,我仍然没有找到解决方案的挑战之一是插入浮点数。

我正在尝试做这样的事情:

list($usec, $sec) = explode(" ", microtime()); 
$timestamp = (float)$usec + (float)$sec; //1379914632.0291
$array_to_insert = array('system_insert_time' => array('N' => $timestamp));

我收到这样的异常:

Validation errors: [Item][system_insert_time][N] must be of type string

数据库中的字段定义为数字。如果我尝试插入整数,它工作正常。但我需要比秒更准确。作为字符串插入不起作用,因为我希望能够获取大于特定时间戳的数据库条目。

任何帮助将不胜感激!谢谢。

如果我在插入之前在时间戳上使用 number_format(),它似乎有效。

您已经找到了一个解决方案,所以我只想将类型转换添加到字符串将是另一个......

$array_to_insert = array('system_insert_time' => array('N' => (string)$timestamp));
#                                                             ^------^