Zend Framework 2 – подключение к базе данных

Попытка обернуться вокруг новых концепций Zend Framework 2.0.

Я пытаюсь подключиться к базе данных и получить это соединение в контроллере или модели. Ничего необычного, просто чистая связь для запуска запросов.

Итак, это мой текущий код:

//module.config.php return array( 'db' => array( 'driver' => 'Pdo', 'dsn' => 'mysql:dbname=DBNAME;host=HOSTNAME, 'driver_options' => array( PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\'' ), 'username' => 'USERNAME', 'password' => 'PASSWORD', ), 'service_manager' => array( 'factories' => array( 'translator' => 'Zend\I18n\Translator\TranslatorServiceFactory', 'Zend\Db\Adapter\Adapter' => 'Zend\Db\Adapter\AdapterServiceFactory', ), ), ); 

Что я делаю не так?

Solutions Collecting From Web of "Zend Framework 2 – подключение к базе данных"

Создайте db.local.php в папке ./config/autoload и добавьте следующий контент.

 return array( 'db' => array( 'driver' => 'Pdo', 'dsn' => 'mysql:dbname=zenBlog;host=localhost', 'username' =>'root', 'password' =>'', 'driver_options' => array( PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\'' ), ), 'service_manager' => array( 'aliases' => array( 'db' => 'Zend\Db\Adapter\Adapter', ), ),); 

в вашем контроллере $this->getServiceLocator()->get('db'); для доступа к базе данных.

Вот как выглядит мой local.php в config \ autoload \ local.php.

 <?php return array( 'db' => array( 'driver' => 'Pdo', 'dsn' => 'mysql:dbname=<dbname>;host=localhost', 'username' => 'root', 'password' => <your password here>, 'driver_options' => array( PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\'' ), ), 'service_manager' => array( 'aliases' => array( 'adapter' => 'Zend\Db\Adapter\Adapter', ), ),); 

Теперь используйте это для создания адаптера базы данных:

 $adapter = $this->getServiceLocator()->get('adapter'); 

Создайте sql statetment и поставьте переменную $ sql. Теперь сделайте следующее:

 $statement = $adapter->createStatement($sql); $result = $statement->execute(); 

Надеюсь это поможет.