2013-01-14 16 views
1

选择使用数据时,我发现了以下错误/var/log/apache2/error.log卡桑德拉-PDO的PHP:卡桑德拉-PDO的错误选择组合键

[Mon Jan 14 23:37:47 2013] [error] [client 10.0.0.5] PHP Fatal error: Uncaught exception 'PDOException' with message 'CQLSTATE[08006] [8] No more data to read.' in /var/www/test_cassandra_pdo.php:13\nStack trace:\n#0 /var/www/test_cassandra_pdo.php(13): PDOStatement->execute()\n#1 {main}\n thrown in /var/www/test_cassandra_pdo.php on line 13 

我使用:

下面是我的PHP代码:

// Connect to two hosts 
$dsn = "cassandra:host=cassandra001,port=9160;host=cassandra002,port=9160;cqlversion=3.0.0"; 
$db = new PDO($dsn); 
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
$db->exec("USE test"); 

$stmt = $db->prepare("SELECT page, local, key, vl FROM lalala;"); 
//$stmt->bindValue(':key', 'a'); 
$stmt->execute(); 

$result = $stmt->fetchAll(); 
var_dump($result); 

下面是数据结构(创建并与cqlsh列出):

Connected to test at cassandra001:9160. 
[cqlsh 2.3.0 | Cassandra 1.2.0 | CQL spec 3.0.0 | Thrift protocol 19.35.0] 
Use HELP for help. 
cqlsh> use test; 
cqlsh:test> describe table lalala; 

CREATE TABLE lalala (
page text, 
local text, 
key text, 
value text, 
vl text, 
PRIMARY KEY (page, local, key) 
) WITH 
bloom_filter_fp_chance=0.010000 AND 
caching='KEYS_ONLY' AND 
comment='' AND 
dclocal_read_repair_chance=0.000000 AND 
gc_grace_seconds=864000 AND 
read_repair_chance=0.100000 AND 
replicate_on_write='true' AND 
compaction={'class': 'SizeTieredCompactionStrategy'} AND 
compression={'sstable_compression': 'SnappyCompressor'}; 

的选择使用cqlsh:

cqlsh:test> SELECT page, local, key, vl FROM lalala; 

page  | local | key | vl 
------------+-------+-------+---------------- 
teste.html | EN | title | Ola, bem vindo 

我开上卡桑德拉-PDO,但没有任何回报的问题:

http://code.google.com/a/apache-extras.org/p/cassandra-pdo/issues/detail?id=15

任何人都可以帮忙吗?

+0

还是没有答案。 CQL 3这是一个伟大的工具,但我们不能在php中正确使用它... :( – marcostrama

+0

您使用哪个rpc_server_type? – St0rM

+0

我正在使用:rpc_server_type:sync – marcostrama

回答

1

There is a forkcassandra pdo。我开始使用它。但不知道我是否会完全转向它。我将测试开发人员如何回应我的问题报告。如果它不会被主动维护,我将回到apache的原始pdo并使用cql2。 希望它不会发生,cql3映射类型是如此有用。

+0

好消息!希望继续保持。另一个疑问,连接池如何在cassandra-pdo中工作?每次连接重新建立.php脚本运行? – marcostrama

+1

我不知道你的问题的答案。附:叉子似乎保持得非常好,开发人员也很敏感。这几天我们解决了CQL3中对集合类型的支持。签出项目页面获取更多信息https://github.com/mathieu-lornac/YACassandraPDO – moldcraft