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 の制限/バグを回避するには、定義自体を解析し、括弧内の数値を抽出する必要がある場合があります。