Sorry, this repository deprecated and not maintained anymore. Please use https://github.com/duoshuo/php-cassandra
Cassandra client library for PHP, using the native binary protocol.
- UUID generation
- timestamp only with microsecond
- using v2 protocol
- speedup
- the ability to specify the settings (setup default consistency level and more)
- more fixes
- decimal and timestamps have bugs especially in collections (map,set,list)
- connection handling e.g. timeouts
PHP 5.4+ is required. There is no need for additional libraries.
Append dependency into composer.json
...
"require": {
...
"evseevnn/php-cassandra-binary": "dev-master"
}
...
<?php
$nodes = [
'127.0.0.1',
'192.168.0.2:8882' => [
'username' => 'admin',
'password' => 'pass'
]
];
// Connect to database.
$database = new evseevnn\Cassandra\Database($nodes, 'my_keyspace');
$database->connect();
// Run query.
$users = $database->query('SELECT * FROM "users" WHERE "id" = :id', ['id' => 'c5420d81-499e-4c9c-ac0c-fa6ba3ebc2bc']);
var_dump($users);
/*
result:
array(
[0] => array(
'id' => 'c5420d81-499e-4c9c-ac0c-fa6ba3ebc2bc',
'name' => 'userName',
'email' => '[email protected]'
)
)
*/
// Keyspace can be changed at runtime
$database->setKeyspace('my_other_keyspace');
// Get from other keyspace
$urlsFromFacebook = $database->query('SELECT * FROM "urls" WHERE "host" = :host', ['host' => 'facebook.com']);
$database->beginBatch();
// all INSERT, UPDATE, DELETE query append into batch query stack for execution after applyBatch
$uuid = $database->query('SELECT uuid() as "uuid" FROM system.schema_keyspaces LIMIT 1;')[0]['uuid'];
$database->query(
'INSERT INTO "users" ("id", "name", "email") VALUES (:id, :name, :email);',
[
'id' => $uuid,
'name' => 'Mark',
'email' => '[email protected]'
]
);
$database->query(
'DELETE FROM "users" WHERE "email" = :email;',
[
'email' => '[email protected]'
]
);
$result = $database->applyBatch();
All types are supported.
- ascii, varchar, text Result will be a string.
- bigint, counter, varint Converted to strings using bcmath.
- blob Result will be a string.
- boolean Result will be a boolean as well.
- decimal Converted to strings using bcmath.
- double, float, int Result is using native PHP datatypes.
- timestamp Converted to integer. Milliseconds precision is lost.
- uuid, timeuuid, inet No native PHP datatype available. Converted to strings.
- list, set Converted to array (numeric keys).
- map Converted to keyed array.