【问题标题】:Insert Datetime to Cassandra (by DataStax PHP Driver)将日期时间插入 Cassandra(通过 DataStax PHP 驱动程序)
【发布时间】:2016-10-06 09:09:03
【问题描述】:

我有一张桌子:

CREATE TABLE agency (
  documentCode ASCII,
  sectionCode ASCII,
  checkedAt TIMESTAMP,

  PRIMARY KEY (franchisedCode, agencyCode)
)
;

如果需要,我可以更改数据库的结构。

我会设置一个时间戳:

$cassandra = $cluster->connect($keyspace);
$statement = $cassandra->prepare('
  INSERT INTO agency 
  ( documentCode
  , sectionCode
  , checkedAt
  ) VALUES 
  ( :documentCode
  , :sectionCode
  , :checkedAt
  );
');

$arguments = [
    'documentCode'   => $code1,
    'sectionCode'    => $code2,
    'checkedAt'      => $mixed,
];

var_dump($arguments);

$options = new ExecutionOptions([
    'arguments' => $arguments,
]);

$cassandra->execute($statement, $options);

我测试了$mixed 的一些值:

  • null 工作
  • 123456789 失败,即使我转换为 intstring
  • '2016-06-06T12:34:56+00:00' 失败
  • '2016-06-06T12:34:56' 失败
  • '2016-06-06' 失败

错误信息是Fatal error: Uncaught Cassandra\Exception\InvalidArgumentException: Invalid value type

你能看出哪里不对吗? 谢谢

【问题讨论】:

    标签: php cassandra datastax


    【解决方案1】:

    好吧,我解决了我的问题。 我必须使用对象类型: $checkedAt = new \Cassandra\Timestamp($checkedAt);

    【讨论】:

      猜你喜欢
      • 2015-05-18
      • 2016-02-27
      • 2019-04-18
      • 2015-08-08
      • 2021-02-09
      • 1970-01-01
      • 2016-01-22
      • 2017-01-20
      • 2015-04-05
      相关资源
      最近更新 更多