2013-06-18 36 views
0

我最近在cqlsh控制台中创建了一个具有CREATE TABLE的列族。phpcassa在执行cql时给出错误

我有以下专栏家族;

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控制台插入插入是以下;由UUID::uuid1()->string

当我尝试从cqlsh插入产生

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

标识,它没有给错误。然而,在phpcassa,它提供了以下错误:

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

我已经设置了客户的定制列表版本3.0.0通过

$pool->get()->client->set_cql_version("3.0.0"); 

我已经试图插入timeuuid场像'67c5cb00-d814-11e2-9e13-59eb8e4538e5'

顺便说一下,执行的变量$cqlvar_dump如下:

string 'INSERT INTO keyspace.user (player_id,balance,is_free,bonus,id) VALUES (104,0.00,false,'3+3+3','ca256040-d819-11e2-ae08-f78171d975c3')' 

这里有什么问题?

回答

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)'