gpt4 book ai didi

mysql - Zend Framework 2 Db getColumns

转载 作者:行者123 更新时间:2023-11-29 09:39:24 24 4
gpt4 key购买 nike

“getColumns”到底应该返回什么?如果我使用抽象接口(interface)检索表,那么获取列名的唯一方法似乎是使用我的 IDE 所说的已弃用的元数据类。然而,尽管进行了几个小时的搜索,我似乎找不到任何关于什么正在取代其功能的信息。我认为它可能是表网关中的“getColumns”,但每当我在定义的表上调用它时,我总是得到一个空集。

最佳答案

RDBMS Metadata documentation

Zend\Db\Metadata\Metadata 实际上已被弃用,但功能仍然存在。如果您查看类内部,您会发现以下注释:

/**
* @deprecated Use Zend\Db\Metadata\Source\Factory::createSourceFromAdapter($adapter)
*/
class Metadata implements MetadataInterface
{
...
}

因此,要直接实例化 Metadata 类,您必须使用工厂:

// This is deprecated
// $metadata = new \Zend\Db\Metadata\Metadata($adapter);

// This is the correct way to obtain the metadata
$metadata = \Zend\Db\Metadata\Source\Factory::createSourceFromAdapter($adapter);

// get the table names
$tableNames = $metadata->getTableNames();

foreach ($metadata->getTableNames() as $tableName) {
echo 'In Table ' . $tableName . PHP_EOL;

$table = $metadata->getTable($tableName);

echo ' With columns: ' . PHP_EOL;
foreach ($table->getColumns() as $column) {
echo ' ' . $column->getName()
. ' -> ' . $column->getDataType()
. PHP_EOL;
}
}

关于mysql - Zend Framework 2 Db getColumns,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56943164/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com