2013-06-18 37 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)'