Primary index
The following code example demonstrates a primary index query with the PHP client.
<?php
use Aerospike\Client;use Aerospike\WritePolicy;use Aerospike\ScanPolicy;use Aerospike\Bin;use Aerospike\Key;use Aerospike\PartitionFilter;
$socket = "/tmp/asld_grpc.sock";// Establish connection to Aerospike server$client = Client::connect($socket);
// Define namespace and set$namespace = "test";$set = "users";
// Define bins (attributes) for user data$userBins = [ new Bin("username", "john_doe"), new Bin("email", "john.doe@example.com"), new Bin("age", 30)];
// Define write policy for adding data$writePolicy = new WritePolicy();$writePolicy->sendKey = true; // Ensure server returns the key upon write
// Add sample user data to the server$userKeys = [];for ($i = 0; $i < 5; $i++) { $key = new Key($namespace, $set, "user_" . $i); $client->put($writePolicy, $key, $userBins); $userKeys[] = $key; // Store keys for later retrieval}
// Define bins to retrieve during scan$scanBins = ["username", "email", "age"];
// Define scan policy$scanPolicy = new ScanPolicy();$pf = PartitionFilter::all();
// Perform scan$recordSet = $client->scan($scanPolicy, $pf, $namespace, $set, $scanBins);
// Iterate over scan resultswhile ($record = $recordSet->next()) { // Access bin values of each record $username = $record->bins["username"]; $email = $record->bins["email"]; $age = $record->bins["age"];
// Display retrieved data echo "Username: $username, Email: $email, Age: $age\n";}
// Close record set after processing$recordSet->close();