codecamp

PHP8 PDOStatement::getColumnMeta

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.0)

PDOStatement::getColumnMeta — 返回结果集中一列的元数据

说明

public PDOStatement::getColumnMeta(int $column): array|false

检索一个在结果集中以0开始索引的列的元数据作为一个关联数组。

警告

一些驱动程序可能没有实现 PDOStatement::getColumnMeta(),因为它是可选的。但是,手册中记录的所有 PDO 驱动程序都实现了此功能。

参数 

column

结果集中以0开始索引的列。

返回值 

返回一个关联数组,它包含了下列表示一个单独列的元数据的值:

列的元数据
名称
native_type用于表示列值的 PHP 原生类型。
driver:decl_type在数据库中用于表示列值的 SQL 类型。如果结果集中的列是一个函数的结果,则该值不能被 PDOStatement::getColumnMeta() 返回。
flags任何设置于此列的标记。
name通过数据库返回的列名。
table通过数据库返回的该列的表名
len该列的长度。除浮点小数外通常为 -1
precision该列的数值精度。除浮点小数外通常为 0
pdo_type以 PDO::PARAM_* 常量为代表的列类型。

如果结果集不存在,或者是请求的列在结果集中不存在,则返回 false。

示例 

示例 #1 检索列的元数据

下面例子展示了在 PDO_SQLITE 中,检索一个通过函数(COUNT)生成单独列的元数据的结果。

<?php
$select = $DB->query('SELECT COUNT(*) FROM fruit');
$meta = $select->getColumnMeta(0);
var_dump($meta);
?>

以上示例会输出:

array(6) {
  ["native_type"]=>
  string(7) "integer"
  ["flags"]=>
  array(0) {
  }
  ["name"]=>
  string(8) "COUNT(*)"
  ["len"]=>
  int(-1)
  ["precision"]=>
  int(0)
  ["pdo_type"]=>
  int(2)
}

参见 

  • PDOStatement::columnCount() - 返回结果集中的列数
  • PDOStatement::rowCount() - 返回受上一个 SQL 语句影响的行数


PHP8 PDOStatement::getAttribute
PHP8 PDOStatement::getIterator
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

PHP8 语言参考

PHP8 函数参考

PHP8 影响 PHP 行为的扩展

PHP8 Componere

PHP8 安装/配置

PHP8 外部函数接口

PHP8 选项和信息

PHP8 选项/信息 函数

PHP8 Windows Cache for PHP

PHP8 WinCache 函数

PHP8 Yac

PHP8 身份认证服务

PHP8 Radius 函数

PHP8 压缩与归档扩展

PHP8 Phar

PHP8 Zip

PHP8 ZipArchive 类

PHP8 加密扩展

PHP8 OpenSSL

PHP8 OpenSSL 函数

PHP8 Sodium 函数

PHP8 数据库扩展

PHP8 针对各数据库系统对应的扩展

PHP8 CUBRID 函数

PHP8 Firebird/InterBase

PHP8 Firebird/InterBase函数

PHP8 MongoDB介绍驱动程序体系结构和特殊功能

PHP8 MongoDB\Driver\Command 类

PHP8 MongoDB\Driver\Query 类

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }