我最近在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'
顺便说一下,执行的变量var_dump
的{{1}}如下;
$cql
这里有什么问题?
答案 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)'