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() 函数用于获取 从数据库请求的架构信息。要获取有关特定类的信息, 设置 ,以获取有关特定属性的信息 (只能与CUBRID_SCH_ATTR_PRIVILEGE一起使用), 将 .class_nameattr_name

cubrid_schema() 函数的结果以二维形式返回 数组 (列 (关联数组) * 行 (数值数组))。以下 表显示了 Schema 的类型和结果数组的列结构 根据架构类型返回。

每种类型的结果组成
图式列号列名称价值
CUBRID_SCH_CLASS1名字 
 2类型0:系统类 1:v类 2:类
CUBRID_SCH_VCLASS1名字 
 2类型1:vclass
CUBRID_SCH_QUERY_SPEC1QUERY_SPEC 
CUBRID_SCH_ATTRIBUTE / CUBRID_SCH_CLASS_ATTRIBUTE1ATTR_NAME 
 2 
 3规模 
 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:系统类 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优先权 
 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:级联 1:限制 2:无操作 3:设置空
 7DELETE_ACTION0:级联 1:限制 2:无操作 3:设置空
 8FK_NAME 
 9PK_NAME 

参数 

conn_identifier

连接标识符。

schema_type

您想知道的架构数据。

class_name

您想知道其架构的类。

attr_name

要知道其架构的属性。

返回值 

包含架构信息的数组, 当进程成功时, 或者在失败时返回 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

公众号
微信公众号

编程狮公众号