phpcassa给出了cql执行错误

时间:2013-06-18 13:35:20

标签: php cassandra phpcassa

我最近在CREATE TABLE控制台中创建了一个cqlsh列系列。

我有以下专栏系列;

CREATE TABLE user (
  id timeuuid PRIMARY KEY,
  balance decimal,
  is_free boolean,
  player_id bigint,
)

我想插入以下类型的数据;

{
    "player_id": 104,
    "balance": "0.00",
    "is_free": false,
    "bonus": "3+3+3"
}

当我从cqlsh控制台插入时,插入如下;

INSERT INTO keyspace.user (player_id, balance,is_free,bonus, id) 
VALUES (104,0.00,'3+3+3',67c5cb00-d814-11e2-9e13-59eb8e4538e5)

ID由UUID::uuid1()->string

生成

当我尝试从cqlsh插入时,它没有出错。但是,在phpcassa中,它会出现以下错误:

Expected key 'ID' to be present in WHERE clause for 'users'

我已经通过

将客户端的cql版本设置为3.0.0
$pool->get()->client->set_cql_version("3.0.0");

我已经尝试插入类似'67c5cb00-d814-11e2-9e13-59eb8e4538e5'

的timeuuid字段

顺便说一下,执行的变量var_dump的{​​{1}}如下;

$cql

这里有什么问题?

1 个答案:

答案 0 :(得分:0)

execute_cql_query()函数似乎在cql_version 3.0.0中不起作用

尽管cql 3支持在phpcassa中不是官方支持,execute_cql3_query()功能可以稳定运行对我来说,使用以下代码;

$this->_connection_pool->get()->client->execute_cql3_query($cql, ConsistencyLevel::ONE);

其中$cql如下;

string 'INSERT INTO keyspace.user (player_id,balance,is_free,bonus,id)
        VALUES (104,0.00,false,'3+3+3',12128260-d8ea-11e2-b5b3-0be38f9377b6)'