-2

经过长期的奋斗和研究,终于可以使用zend framework 2查询mysql表中的数据库了。

我正在使用自动加载器。这是代码:

require_once 'Zend/Loader/StandardAutoloader.php';
    $loader = new Zend\Loader\StandardAutoloader(array('autoregister_zf' => true));

    $loader->register();

    use Zend\Db\Adapter\Adapter;


    $params = array(
        'driver'=> 'Pdo_Mysql',
        'hostname' => 'localhost',
        'username' => '*****',
        'password' => '*****',
        'dbname' => '*****'
    );

    try{

       $adapter = new Adapter($params);

    }
    catch (Exception $e){
        echo $e->getMessage();
    }

    $sql = 'select * from user';

    $rs = $adapter->createStatement($sql)->execute(array(100,100));

    print_r(iterator_to_array($rs));

    echo $rs->count();

我想知道查询 mysql 表的正确方法和最佳实践是什么。以前在 ZF1 中要容易得多,但现在我明白 ZF2 更加面向对象。

我想优化性能和良好的编码。你能告诉我我做的是否好,在使用 ZF2 时查询 mysql 数据库的最佳方法是什么,因为会有很多查询要做。

4

1 回答 1

3

首先。

经过长期的奋斗和研究

恕我不能赞同。您可以在任何地方找到搜索内容的示例。

您的代码根本不尊重 OOP 方法,甚至不尊重 Zf2 标准编码,因此您必须打破这一点。我还建议使用Zend 框架应用程序来向您展示如何使用 Zf2 和标准架构。

为了回答您的问题: Zf2 有一个配置部分来配置连接参数。您应该使用它,根据文档本身,这是最佳实践。

这个关于数据库和模型的完整教程肯定会帮助你。

在本教程中,您可以看到连接配置应在配置文件中查看的示例

//db.config.php
return array(
     'db' => array(
         'driver'         => 'Pdo',
         'dsn'            => 'mysql:dbname=[yourDb_name];host=localhost',
         'driver_options' => array(
             PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
         ),
     ),
     'service_manager' => array(
         'factories' => array(
             'Zend\Db\Adapter\Adapter'
                     => 'Zend\Db\Adapter\AdapterServiceFactory',
         ),
     ),
 );

然后从这里您还可以在另一个配置文件中指定您的安全和/或环境问题/设施的凭据

 //credential.config.local.php
 return array(
     'db' => array(
         'username' => 'YOUR USERNAME HERE',
         'password' => 'YOUR PASSWORD HERE',
     ),
 );

所有配置文件都被合并。用它 !

通过遵循本教程,您将能够使用 OOP 方法创建模型层并与数据库进行交互。您必须根据需要使用 MVC 模式等设计模式,以及其他一些设计模式。但是,如果您想尊重 zf2 编码标准,这是唯一的方法!

于 2015-10-08T10:18:06.153 回答