1
我正在使用Doctrine DBAL項目來獲取下表中列的長度(在這種情況下,整數的長度爲8)。我不使用ORM,也沒有在YML中定義的模式或任何東西。使用Doctrine DBAL獲取列的長度
CREATE TABLE IF NOT EXISTS `mytable` (
`id` int(8) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
在尋找一個答案,我注意到的是,根據參數的類型,似乎有一對夫婦提供一些有用的信息的屬性;長度,精度和規模。以下代碼列出了一些列屬性,但不包括我正在查找的8個字符的長度。我很驚訝,很難找到這個常見的列屬性。
$sm = $connection->getSchemaManager(); // $connection is assumed to exist (for e.g. via $this->container->get('database_connection') in Symfony)
foreach ($sm->listTableColumns('mytable') as $column) {
print_r($column->toArray());
}
Output:
Array
(
[name] => id
[type] => Doctrine\DBAL\Types\IntegerType Object
(
)
[default] =>
[notnull] => 1
[length] =>
[precision] => 10
[scale] => 0
[fixed] =>
[unsigned] =>
[autoincrement] => 1
[columnDefinition] =>
[comment] =>
)