Cassandra client library for PHP, using the native binary protocol.
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' => 'user@email.com'
)
)
*/
// 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' => 'mark@facebook.com'
]
);
$database->query(
'DELETE FROM "users" WHERE "email" = :email;',
[
'email' => 'durov@vk.com'
]
);
$result = $database->applyBatch();
All types are supported.