Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
Boa cara. Dessa eu não sabia.
Talvez seja este o problema.
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
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?
Não precisa mudar nada no Bootstrap.
Carlos Eduardo
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'
VAZA,
Seu resource está escrito errado para o parametro dbname:
resourses.db.params.dbname = minhabase
o correto é:
resources.db.params.dbname = minhabase
putz!! que burro que eu sou!! agora deu certo :S
Vlw
:lol:
Acontece...
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