2013-01-14 17 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