PHP8 cubrid_schema
(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_CLASS | 1 | 名字 | |
2 | 类型 | 0:系统类 1:v类 2:类 | |
CUBRID_SCH_VCLASS | 1 | 名字 | |
2 | 类型 | 1:vclass | |
CUBRID_SCH_QUERY_SPEC | 1 | QUERY_SPEC | |
CUBRID_SCH_ATTRIBUTE / CUBRID_SCH_CLASS_ATTRIBUTE | 1 | ATTR_NAME | |
2 | 域 | ||
3 | 规模 | ||
4 | 精度 | ||
5 | 索引 | 1:索引 | |
6 | 不为空 | 1:不为空 | |
7 | 共享 | 1:共享 | |
8 | 独特 | 1:独一无二 | |
9 | 违约 | ||
10 | ATTR_ORDER | 底座:1 | |
11 | CLASS_NAME | ||
12 | SOURCE_CLASS | ||
13 | IS_KEY | 1:键 | |
CUBRID_SCH_METHOD / CUBRID_SCH_CLASS_METHOD | 1 | 名字 | |
2 | RET_DOMAIN | ||
3 | ARG_DOMAIN | ||
CUBRID_SCH_METHOD_FILE | 1 | METHOD_FILE | |
CUBRID_SCH_SUPERCLASS / CUBRID_SCH_DIRECT_SUPER_CLASS / CUBRID_SCH_SUBCLASS | 1 | CLASS_NAME | |
2 | 类型 | 0:系统类 1:v类 2:类 | |
CUBRID_SCH_CONSTRAINT | 1 | 类型 | 0:唯一 1:索引 2:反向 唯一 3:反向索引 |
2 | 名字 | ||
3 | ATTR_NAME | ||
4 | NUM_PAGES | ||
5 | NUM_KEYS | ||
6 | PRIMARY_KEY | 1:主键 | |
7 | KEY_ORDER | 底座:1 | |
CUBRID_SCH_TRIGGER | 1 | 名字 | |
2 | 地位 | ||
3 | 事件 | ||
4 | TARGET_CLASS | ||
5 | TARGET_ATTR | ||
6 | ACTION_TIME | ||
7 | 行动 | ||
8 | 优先权 | ||
9 | CONDITION_TIME | ||
10 | 条件 | ||
CUBRID_SCH_CLASS_PRIVILEGE / CUBRID_SCH_ATTR_PRIVILEGE | 1 | CLASS_NAME / ATTR_NAME | |
2 | 特权 | ||
3 | 可授予 | ||
CUBRID_SCH_PRIMARY_KEY | 1 | CLASS_NAME | |
2 | ATTR_NAME | ||
3 | KEY_SEQ | 底座:1 | |
4 | KEY_NAME | ||
CUBRID_SCH_IMPORTED_KEYS / CUBRID_SCH_EXPORTED_KEYS / CUBRID_SCH_CROSS_REFERENCE | 1 | PKTABLE_NAME | |
2 | PKCOLUMN_NAME | ||
3 | FKTABLE_NAME | 底座:1 | |
4 | Fcall_Name | ||
5 | KEY_SEQ | 底座:1 | |
6 | UPDATE_ACTION | 0:级联 1:限制 2:无操作 3:设置空 | |
7 | DELETE_ACTION | 0:级联 1:限制 2:无操作 3:设置空 | |
8 | FK_NAME | ||
9 | PK_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" } }