与之前的消息一样,将 null 作为 db2_columns 的最后一个参数传递会导致没有任何内容返回。传递 '%' 则可以正常工作。文档确实需要更新以更正此错误,因为它非常具有误导性,并且 8 年前就被报告为错误!(PECL ibm_db2 >= 1.0.0)
db2_columns — 返回一个结果集,其中列出了表中的列以及关联的元数据
$connection,$qualifier = null,$schema = null,$table_name = null,$column_name = null返回一个结果集,其中列出了表中的列以及关联的元数据。
返回一个语句资源,其中包含一个结果集,该结果集包含描述与指定参数匹配的列的行。这些行由以下列组成
| 列名 | 描述 |
|---|---|
| TABLE_CAT | 目录的名称。如果此表没有目录,则值为 NULL。 |
| TABLE_SCHEM | 模式的名称。 |
| TABLE_NAME | 表或视图的名称。 |
| COLUMN_NAME | 列的名称。 |
| DATA_TYPE | 列的 SQL 数据类型,表示为整数值。 |
| TYPE_NAME | 表示列数据类型的字符串。 |
| COLUMN_SIZE | 表示列大小的整数值。 |
| BUFFER_LENGTH | 存储此列数据的最大字节数。 |
| DECIMAL_DIGITS | 列的刻度,或null(刻度不适用时)。 |
| NUM_PREC_RADIX | 整数值,可以是10(表示精确数值数据类型)、2(表示近似数值数据类型)或null(表示基数不适用的数据类型)。 |
| NULLABLE | 表示列是否可为空的整数值。 |
| REMARKS | 列的描述。 |
| COLUMN_DEF | 列的默认值。 |
| SQL_DATA_TYPE | 表示列大小的整数值。 |
| SQL_DATETIME_SUB | 返回一个表示日期时间子类型代码的整数值,或null(对于不适用此代码的 SQL 数据类型)。 |
| CHAR_OCTET_LENGTH | 字符数据类型列的最大八位字节长度,对于单字节字符集数据与 COLUMN_SIZE 相匹配,对于非字符数据类型则为null。 |
| ORDINAL_POSITION | 表中列的从 1 开始的索引位置。 |
| IS_NULLABLE | 字符串值,其中 'YES' 表示列可为空,'NO' 表示列不可为空。 |
与之前的消息一样,将 null 作为 db2_columns 的最后一个参数传递会导致没有任何内容返回。传递 '%' 则可以正常工作。文档确实需要更新以更正此错误,因为它非常具有误导性,并且 8 年前就被报告为错误!必须是
db2_columns($conn, '', '%', $table, '%');
不要忘记表名是大写的。这让我很头疼。