试图围绕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',
),
),
);
我做错了什么?
答案 0 :(得分:9)
在./config/autoload文件夹中创建db.local.php并添加以下内容
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');
中访问数据库。
答案 1 :(得分:0)
这是我在config \ autoload \ local.php中的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();
希望这有帮助。