全部產品
Search
文件中心

Tablestore:讀取單行資料

更新時間:Mar 10, 2026

本文介紹如何通過 PHP SDK 讀取Table Store資料表的單行資料。

注意事項

讀取資料時需要提供包含自增主鍵列值在內的完整主索引值。

前提條件

初始化Tablestore Client

方法說明

public function getRow(array $request)

$request參數說明

名稱

類型

說明

table_name(必選)

string

資料表名稱。

primary_key(必選)

array

主鍵資訊,包括主鍵列名稱和主索引值。

  • 主鍵列資料類型包括 STRING、INTEGER 和 BINARY。

  • 主鍵個數和類型必須與資料表的主鍵保持一致。

max_versions(可選)

int

最大版本數。

  • 必須設定最大版本數和版本範圍的其中一個。

  • 如果符合查詢條件的資料版本數量超過設定的最大版本數,按從新到舊的順序返回指定版本數量的資料。

time_range(可選)

array

資料版本範圍。

  • 必須設定最大版本數和版本範圍的其中一個。

  • Table Store資料表的每個屬性列可以有不同的資料版本,設定版本範圍後,僅返回版本範圍內的資料。

columns_to_get(可選)

array

指定讀取的資料列,可以是主鍵列或屬性列。

  • 不設定columns_to_get時,返回整行資料。

  • 設定columns_to_get時,如果讀取的行資料不包含任何指定的資料列,將返回 null。

column_filter(可選)

array

過濾條件,詳情請參見過濾器

  • 如果同時設定columns_to_get和column_filter,先按columns_to_get篩選合格資料行,再按column_filter條件過濾資料。

transaction_id(可選)

string

局部事務ID,用於唯一標識局部事務,詳情請參見局部事務

範例程式碼

以下範例程式碼讀取了主索引值為 row1 的單行資料。

$request = array (
    'table_name' => 'test_table',
    // 構造主鍵
    'primary_key' => array (
        array ('id', 'row1')
    ),
    'max_versions' => 1
);

try {
    // 調用 getRow 方法讀取行資料
    $response = $client->getRow ($request);
    echo "* Read CU Cost: " . $response['consumed']['capacity_unit']['read'] . "\n";
    echo "* Write CU Cost: " . $response['consumed']['capacity_unit']['write'] . "\n";
    echo "* Row Data: " . "\n";
    echo "Primary Key: ". json_encode($response['primary_key']) . "\n";
    echo "Attribute Columns: ". json_encode($response['attribute_columns']) . "\n";
} catch (Exception $e){
    echo "Get Row failed.";
}
  • 設定讀取的資料版本範圍,結果只返回版本範圍內的資料。

    // 設定查詢的資料版本範圍為目前時間往前一天
    $request['time_range'] = array (
        'start_time' => intval(microtime(true) * 1000) - 86400 * 1000,
        'end_time' => intval(microtime(true) * 1000)
    );
  • 指定讀取的屬性列。

    $request['columns_to_get'] = array('col2');

相關文檔