【问题标题】:Get mysql table field names in ZF2ZF2中获取mysql表字段名
【发布时间】: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)。您缺少前导反斜杠

标签: php mysql zend-framework2


【解决方案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);
      

      【讨论】:

        猜你喜欢
        • 2012-05-02
        • 1970-01-01
        • 2012-06-21
        • 2016-08-17
        • 2011-04-20
        • 1970-01-01
        • 2011-08-15
        • 2010-12-04
        • 2020-08-15
        相关资源
        最近更新 更多