ZF2中获取mysql表字段名

Posted

技术标签:

【中文标题】ZF2中获取mysql表字段名【英文标题】:Get mysql table field names in ZF2 【发布时间】:2013-03-10 17:04:24 【问题描述】:

我想将 csv 数据动态存储到 mysql 表中。根据我的 csv 列标题,我想将数据插入到 mysql 表中的相应列中。为此,我需要从 Zend Framework Controller 或 Model 中获取所有表字段名称。

我试过了:

**

$metadata = new Zend\Db\Metadata\Metadata($adapter);
$table = $metadata->getTable($tableName);
$table->getColumns();

**

但是,它显示错误:

致命错误:找不到类“Import\Model\Zend\Db\Metadata\Metadata”。

如何使用 Zend Framework 2 获取所有 mysql 表字段名称?

【问题讨论】:

记住命名空间...$metadata = new \Zend\Db\Metadata\Metadata($dba)。您缺少前导反斜杠 【参考方案1】:

你必须在zend之前使用反斜杠 正确的一个:

$metadata = new \Zend\Db\Metadata\Metadata($adapter);

【讨论】:

【参考方案2】:

您也可以使用文件顶部的use-statement。

namespace Import\Model;

use Zend;

或者您使用以下内容:

namespace Import\Model;

use Zend\Db\Metadata\Metadata;

// ... lots of code here ;-)
$metadata = new Metadata($adapter);

【讨论】:

事情对我更有帮助。谢谢。【参考方案3】:

在标题部分

命名空间导入\模型;

使用 Zend\Db\Metadata\Metadata;

在模态函数中

$metadata = 新元数据($adapter);

$fields=$metadata->getColumnNames($table);

【讨论】:

【参考方案4】:

您应该为此使用工厂,而不是创建元数据的新实例(已弃用)

use Zend\Db\Metadata\Source\Factory;

$metadata = Factory::createSourceFromAdapter($adapter);

【讨论】:

以上是关于ZF2中获取mysql表字段名的主要内容,如果未能解决你的问题,请参考以下文章

获取所有数据库名表名字段名

Oracle 查询库中所有表名字段名字段名说明,查询表的数据条数表名中文表名

数据库的表名字段名大小写问题

SQLServer中获取所有数据库名表名字段名以及描述

MySQL运维及开发规范

如何在mysqlworkbench的表的某一字段类型是enum