PHP8 cubrid_schema

2024-03-29 09:16 更新

(PECL CUBRID >= 8.3.0)

cubrid_schema — 獲取請求的架構信息

說明

cubrid_schema(
    resource $conn_identifier,
    int $schema_type,
    string $class_name = ?,
    string $attr_name = ?
): array

cubrid_schema() 函數(shù)用于獲取 從數(shù)據(jù)庫請求的架構信息。要獲取有關特定類的信息, 設置 ,以獲取有關特定屬性的信息 (只能與CUBRID_SCH_ATTR_PRIVILEGE一起使用), 將 .class_nameattr_name

cubrid_schema() 函數(shù)的結果以二維形式返回 數(shù)組 (列 (關聯(lián)數(shù)組) * 行 (數(shù)值數(shù)組))。以下 表顯示了 Schema 的類型和結果數(shù)組的列結構 根據(jù)架構類型返回。

每種類型的結果組成
圖式列號列名稱價值
CUBRID_SCH_CLASS1名字 
 2類型0:系統(tǒng)類 1:v類 2:類
CUBRID_SCH_VCLASS1名字 
 2類型1:vclass
CUBRID_SCH_QUERY_SPEC1QUERY_SPEC 
CUBRID_SCH_ATTRIBUTE / CUBRID_SCH_CLASS_ATTRIBUTE1ATTR_NAME 
 2 
 3規(guī)模 
 4精度 
 5索引1:索引
 6不為空1:不為空
 7共享1:共享
 8獨特1:獨一無二
 9違約 
 10ATTR_ORDER底座:1
 11CLASS_NAME 
 12SOURCE_CLASS 
 13IS_KEY1:鍵
CUBRID_SCH_METHOD / CUBRID_SCH_CLASS_METHOD1名字 
 2RET_DOMAIN 
 3ARG_DOMAIN 
CUBRID_SCH_METHOD_FILE1METHOD_FILE 
CUBRID_SCH_SUPERCLASS / CUBRID_SCH_DIRECT_SUPER_CLASS / CUBRID_SCH_SUBCLASS1CLASS_NAME 
 2類型0:系統(tǒng)類 1:v類 2:類
CUBRID_SCH_CONSTRAINT1類型0:唯一 1:索引 2:反向 唯一 3:反向索引
 2名字 
 3ATTR_NAME 
 4NUM_PAGES 
 5NUM_KEYS 
 6PRIMARY_KEY1:主鍵
 7KEY_ORDER底座:1
CUBRID_SCH_TRIGGER1名字 
 2地位 
 3事件 
 4TARGET_CLASS 
 5TARGET_ATTR 
 6ACTION_TIME 
 7行動 
 8優(yōu)先權 
 9CONDITION_TIME 
 10條件 
CUBRID_SCH_CLASS_PRIVILEGE / CUBRID_SCH_ATTR_PRIVILEGE1CLASS_NAME / ATTR_NAME 
 2特權 
 3可授予 
CUBRID_SCH_PRIMARY_KEY1CLASS_NAME 
 2ATTR_NAME 
 3KEY_SEQ底座:1
 4KEY_NAME 
CUBRID_SCH_IMPORTED_KEYS / CUBRID_SCH_EXPORTED_KEYS / CUBRID_SCH_CROSS_REFERENCE1PKTABLE_NAME 
 2PKCOLUMN_NAME 
 3FKTABLE_NAME底座:1
 4Fcall_Name 
 5KEY_SEQ底座:1
 6UPDATE_ACTION0:級聯(lián) 1:限制 2:無操作 3:設置空
 7DELETE_ACTION0:級聯(lián) 1:限制 2:無操作 3:設置空
 8FK_NAME 
 9PK_NAME 

參數(shù) 

conn_identifier

連接標識符。

schema_type

您想知道的架構數(shù)據(jù)。

class_name

您想知道其架構的類。

attr_name

要知道其架構的屬性。

返回值 

包含架構信息的數(shù)組, 當進程成功時, 或者在失敗時返回 false.

更新日志 

版本說明
8.3.1更改返回值:進程不成功時,返回 false,而不是 -1。

示例 

示例 #1 cubrid_schema() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

printf("\n--- Primary Key ---\n");
$pk = cubrid_schema($conn, CUBRID_SCH_PRIMARY_KEY, "game");
var_dump($pk);

printf("\n--- Foreign Keys ---\n");
$fk = cubrid_schema($conn, CUBRID_SCH_IMPORTED_KEYS, "game");
var_dump($fk);

printf("\n--- Column Attribute ---\n");
$attr = cubrid_schema($conn, CUBRID_SCH_ATTRIBUTE, "stadium", "area");
var_dump($attr);

cubrid_disconnect($conn);
?>

以上示例會輸出:

--- Primary Key ---
array(3) {
  [0]=>
  array(4) {
    ["CLASS_NAME"]=>
    string(4) "game"
    ["ATTR_NAME"]=>
    string(12) "athlete_code"
    ["KEY_SEQ"]=>
    string(1) "3"
    ["KEY_NAME"]=>
    string(41) "pk_game_host_year_event_code_athlete_code"
  }
  [1]=>
  array(4) {
    ["CLASS_NAME"]=>
    string(4) "game"
    ["ATTR_NAME"]=>
    string(10) "event_code"
    ["KEY_SEQ"]=>
    string(1) "2"
    ["KEY_NAME"]=>
    string(41) "pk_game_host_year_event_code_athlete_code"
  }
  [2]=>
  array(4) {
    ["CLASS_NAME"]=>
    string(4) "game"
    ["ATTR_NAME"]=>
    string(9) "host_year"
    ["KEY_SEQ"]=>
    string(1) "1"
    ["KEY_NAME"]=>
    string(41) "pk_game_host_year_event_code_athlete_code"
  }
}

--- Foreign Keys ---
array(2) {
  [0]=>
  array(9) {
    ["PKTABLE_NAME"]=>
    string(7) "athlete"
    ["PKCOLUMN_NAME"]=>
    string(4) "code"
    ["FKTABLE_NAME"]=>
    string(4) "game"
    ["FKCOLUMN_NAME"]=>
    string(12) "athlete_code"
    ["KEY_SEQ"]=>
    string(1) "1"
    ["UPDATE_RULE"]=>
    string(1) "1"
    ["DELETE_RULE"]=>
    string(1) "1"
    ["FK_NAME"]=>
    string(20) "fk_game_athlete_code"
    ["PK_NAME"]=>
    string(15) "pk_athlete_code"
  }
  [1]=>
  array(9) {
    ["PKTABLE_NAME"]=>
    string(5) "event"
    ["PKCOLUMN_NAME"]=>
    string(4) "code"
    ["FKTABLE_NAME"]=>
    string(4) "game"
    ["FKCOLUMN_NAME"]=>
    string(10) "event_code"
    ["KEY_SEQ"]=>
    string(1) "1"
    ["UPDATE_RULE"]=>
    string(1) "1"
    ["DELETE_RULE"]=>
    string(1) "1"
    ["FK_NAME"]=>
    string(18) "fk_game_event_code"
    ["PK_NAME"]=>
    string(13) "pk_event_code"
  }
}

--- Column Attribute ---
array(1) {
  [0]=>
  array(13) {
    ["ATTR_NAME"]=>
    string(4) "area"
    ["DOMAIN"]=>
    string(1) "7"
    ["SCALE"]=>
    string(1) "2"
    ["PRECISION"]=>
    string(2) "10"
    ["INDEXED"]=>
    string(1) "0"
    ["NON_NULL"]=>
    string(1) "0"
    ["SHARED"]=>
    string(1) "0"
    ["UNIQUE"]=>
    string(1) "0"
    ["DEFAULT"]=>
    NULL
    ["ATTR_ORDER"]=>
    string(1) "4"
    ["CLASS_NAME"]=>
    string(7) "stadium"
    ["SOURCE_CLASS"]=>
    string(7) "stadium"
    ["IS_KEY"]=>
    string(1) "0"
  }
}


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號