我正在使用 PHP 中的 PDO 访问 MySQL 数据库。假设我有一个包含 CHAR(30) 或 INT(5) 类型列的表:
- 有一种方法可以使用 PDO 从 PHP 脚本中获取列长度(值
30
和5
),这不是特定于数据库的吗? - 如果没有,有办法使用 PDO 获得该值吗?
- 如果没有,有办法使用 PHP 获得该值吗?
此信息应在information_schema.columns
表中提供:
SELECT CHARACTER_MAXIMUM_LENGTH, NUMERIC_PRECISION, NUMERIC_SCALE FROM information_schema.columns WHERE TABLE_NAME = 'your_table_name'
CHARACTER_MAXIMUM_LENGTH
字符串长度 ( ) 和数字长度 ( )有不同的列NUMERIC_PRECISION
。
更新:
为了解决 MySQL 的限制/错误,其中长度并不总是正确报告,可能需要解析定义本身并提取括号内的数字。