的長度我有一個MySQL表不同長度的int字段:如何獲得一個MySQL的int字段
如何找出長度(nav_parent = 4, nav_show = 2, nav_order = 2)
與PHP PDO?
的長度我有一個MySQL表不同長度的int字段:如何獲得一個MySQL的int字段
如何找出長度(nav_parent = 4, nav_show = 2, nav_order = 2)
與PHP PDO?
SELECT CHARACTER_MAXIMUM_LENGTH, NUMERIC_PRECISION, NUMERIC_SCALE FROM information_schema.columns WHERE TABLE_NAME = 'your_table_name'
有關詳細信息check here
還有就是getColumnMeta實驗方法。該文檔中提供的例子似乎顯示你是什麼後
<?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)
}
這工作在MySQL,是不是實驗:
$result = $this->query('SHOW COLUMNS FROM your_table_name', PDO::FETCH_ASSOC);
現在你有以下信息:
[Field] => yourfieldname
[Type] => int(10)
[Null] => NO
[Key] => PRI
[Default] =>
[Extra] => auto_increment
你c的提取物的lenth形式[類型] => INT(10)像
preg_match('/\d+/', $col['Type'], $len); // gives you the number
全體例如:
$result = $pdo->query('SHOW COLUMNS FROM youTableName');
$columLen = array();
foreach($result as $key => $col){
preg_match('/\d+/', $col['Type'], $len); // get the number out of 'int(10)'
$len = (isset($len[0]))? $len[0] : ''; // is there a length?
$fieldname = $col['Field']; // name of the column
$columLen[$fieldname] = $len; // save it in array
}
print_r($columLen);
輸出:
Array
(
[nav_parent] => 4
[nav_show] => 1
[nav_order] => 2
)
注意: 某些字段類型,如日期,日期時間或文本不會顯示價值長度。 示例:類型時間戳的字段將顯示「[類型] =>時間戳」和不「[類型] =>時間戳(12)」
NOOP,CHARACTER_MAXIMUM_LENGTH將彈出NULL,也NUMERIC_PRECISION和NUMERIC_SCALE將不會提出我期待的長度(4,1,2) –