Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Zend Framework 2中查询MySql数据库的正确方法_Php_Mysql_Zend Framework2_Zend Autoloader - Fatal编程技术网

Php 在Zend Framework 2中查询MySql数据库的正确方法

Php 在Zend Framework 2中查询MySql数据库的正确方法,php,mysql,zend-framework2,zend-autoloader,Php,Mysql,Zend Framework2,Zend Autoloader,经过长期的努力和研究,我终于能够使用zend framework 2在mysql表中查询数据库 我在用自动装弹机。代码如下: require_once 'Zend/Loader/StandardAutoloader.php'; $loader = new Zend\Loader\StandardAutoloader(array('autoregister_zf' => true)); $loader->register(); use Zend\Db\Ada

经过长期的努力和研究,我终于能够使用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数据库的最佳方式是什么,因为将有很多查询要做

首先

经过长期的斗争和研究

我不同意你的看法。您可以在任何地方找到您搜索的内容的示例

您的代码根本不尊重OOP方法,甚至不尊重Zf2标准编码,因此您必须打破这一点。我还建议使用来演示如何在标准体系结构中使用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编码标准,这是唯一的方法