Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

[VAZA]

[Resolvido] Erro de conexão com o Zend e PDO_MYSQL

Recommended Posts

Pessoal, já tentei conectar ao mysql de várias formas. via resources do bootstrap ou carregando arquivo.ini

O Zend me retorna o seguinte erro:

 

Fatal error: Uncaught exception 'Zend_Db_Adapter_Exception' with message 'Configuration array must have a key for 'dbname' that names the database instance' in C:\Program Files (x86)\Zend\ZendServer\share\ZendFramework\library\Zend\Db\Adapter\Abstract.php:287 Stack trace: #0 C:\Program Files (x86)\Zend\ZendServer\share\ZendFramework\library\Zend\Db\Adapter\Abstract.php(183):

 

Estou utilizando o zendStudio com o Zend 1.11.

 

Segue meus dois codigos que geram o mesmo erro:

PRIMEIRA FORMA:

$dbconfig = $application->getBootstrap()->bootstrapDb();

$db = Zend_Db::factory($dbconfig->adapter, $config->config->toArray());

Zend_Db_Table::setDefaultAdapter($db);

 

SEGUNDA FORMA:

$config = new Zend_Config_Ini( APPLICATION_PATH . '/configs/dbconfig.ini', 'database');

$db = Zend_Db::factory($config->db->adapter, $config->db->config->toArray());

Zend_Db_Table::setDefaultAdapter($db);

 

 

MEU APPLICATION.INI PARA A PRIMEIRA FORMA:

;DEFINE A BASE DE DADOS

resources.db.adapter = PDO_MYSQL

resourses.db.params.host = 200.250.197.5

resources.db.params.username = root

resources.db.params.password = root00

resourses.db.params.dbname=kerp

 

MEU DBCONFIG.INI PARA A SEGUNDA FORMA:

[database]

db.adapter = PDO_MYSQL

db.config.host = 200.250.197.5

db.config.username = root

db.config.password = root00

db.config.dbname = kerp

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, se você colocar no application.ini como você citou, não precisa colocar nada no Bootstrap nem em lugar algum (desde que esteja usando apenas um banco de dados). Só usar direto as classes de DbTable, ou, se precisar da conexão em algum lugar, utilize Zend_Db_Table::getDefaultAdapter();

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade o problema do primeiro caso (não sei se o único, mas um deles com certeza) é no nome da propriedade que você está acessando.

 

$config->config->toArray()
// no application.ini você usa
resourses.db.params.host = 200.250.197.5
// ou seja, deveria ser
$config->params->toArray()

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Matias, eu mudei o código em ultimo momento, mas antes estava como $config->params->toArray() e mesmo assim não deu certo.

Mas vou tentar conectar sem esse código, já que você me disse que é só eu colocar as configs no application.ini. Não preciso configurar nada no Bootstrap para carregar essas configurações?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia.

Esta dando o mesmo erro só de eu ter as configs. no meu .ini:

;DEFINE A BASE DE DADOS

resources.db.adapter = PDO_MYSQL

resourses.db.params.host = 200.****

resources.db.params.username = root

resources.db.params.password = *****

resourses.db.params.dbname = minhabase

 

Eu não coloquei nada no bootstrap e nem no meu index.

E o erro é o mesmo:

Uncaught exception 'Zend_Db_Adapter_Exception' with message 'Configuration array must have a key for 'dbname' that names the database instance'

Compartilhar este post


Link para o post
Compartilhar em outros sites

VAZA,

 

Seu resource está escrito errado para o parametro dbname:

resourses.db.params.dbname = minhabase

 

o correto é:

resources.db.params.dbname = minhabase

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.