Erro com DB::query

83 views
Skip to first unread message

Adalberto Ap

unread,
Jul 17, 2012, 12:49:52 PM7/17/12
to kohan...@googlegroups.com
Boa tarde, a todos.

Estou tentando executar 2 consultas no banco e estou obtendo o seguinte erro:
ErrorException [ Fatal Error ]: Wrong parameters for Exception([string $exception [, long $code ]])

Se eu executo uma de cada vez funciona normal. porem se  rodo ate o final da erro.

$query1 = "CALL Get_List_Domain_Val(1);";
$result1 = DB::query(Database::SELECT, $query1, TRUE)->as_object()->execute($this->conn);

$query2 = "CALL Get_List_Domain_Val(5);";
$result2 = DB::query(Database::SELECT, $query2, TRUE)->as_object()->execute($this->conn);

var_dump( $result2 );exit;


Alguém tem alguma ideia?

Grato.
Adalberto Ap.

Rodrigo Oliveira

unread,
Jul 17, 2012, 1:48:57 PM7/17/12
to kohan...@googlegroups.com
Aparentemente há um erro no lançamento da exceção.

Pode ser um bug do Kohana. Dá um olhada na linha e o arquivo que está dando este problema e tenta corrigir pra você saber o que está sendo lançado realmente de erro no DB.

[]'s

2012/7/17 Adalberto Ap <beto.u...@gmail.com>
Adalberto Ap.

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para kohan...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para kohana-php+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/kohana-php?hl=pt-BR.



--
Rodrigo Oliveira
(21) 8747-0180

Juarez Junior

unread,
Jul 17, 2012, 1:50:56 PM7/17/12
to kohan...@googlegroups.com
mysql?
mysqli?
pdo?

Tentou todos?

[s]

2012/7/17 Rodrigo Oliveira <rodri...@gmail.com>:
Juarez Junior - juarez...@gmail.com
http://twitter.com/juareznjunior
http://juareznjunior.wordpress.com/

Adalberto Ap

unread,
Jul 17, 2012, 4:06:23 PM7/17/12
to kohan...@googlegroups.com
Boa tarde!
Vi que no kohana 3.2 o erro é exibido de forma mais clara.

Database_Exception [ HY000 ]: SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute. [ CALL Get_List_Domain_Val(5); ]

Alguém pode me ajudar a resolver isso?

Att.
Adalberto Ap.

Adalberto Ap

unread,
Jul 17, 2012, 4:08:29 PM7/17/12
to kohan...@googlegroups.com
Não tenho o pacote mysqli.

Class 'Database_Mysqli' not found

Estou usando PDO.

Att

Adalberto Ap

unread,
Jul 17, 2012, 4:56:46 PM7/17/12
to kohan...@googlegroups.com
Boa tarde!
Vi que no kohana 3.2 o erro é exibido de forma mais clara.

Database_Exception [ HY000 ]: SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute. [ CALL Get_List_Domain_Val(5); ]

Alguém pode me ajudar a resolver isso?

Att.
Adalberto Ap.

Rodrigo Paiva

unread,
Jul 17, 2012, 10:00:58 PM7/17/12
to kohan...@googlegroups.com
Oi, Adalberto. Estou com o mesmo problema pra executar uma stored procedure, porém uso o driver mysql. Vc usa ORM? Se troco o driver pra PDO, recebo um erro de que não é possível recuperar o nome dos campos ou algo assim. Vc já teve esse problema com PDO?
Adalberto Ap.

[]'s

2012/7/17 Adalberto Ap <beto.u...@gmail.com>
Para cancelar a inscrição nesse grupo, envie um e-mail para kohana-php+unsubscribe@googlegroups.com.

Para obter mais opções, visite esse grupo em http://groups.google.com/group/kohana-php?hl=pt-BR.



--
Rodrigo Oliveira
(21) 8747-0180

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para kohan...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para kohana-php+unsubscribe@googlegroups.com.

Adalberto Ap

unread,
Jul 18, 2012, 8:59:12 AM7/18/12
to kohan...@googlegroups.com
Bom dia, Rodrigo.
O mysql não da suporte a procedures, tem que usar PDO.
Sim estou usando ORM.
O PDO não suporta o sistema de login, por isso você deve esta recendo o erro.
Para resolver isso eu fiz 2 conexões uma com mysql para poder logar o cliente e onde preciso rodar a procedure eu executo outra conexao.

Quando vou usar a proc fica assim:

$this->conn = Database::instance('default-pdo');
DB::query(Database::SELECT, $procedure, TRUE)->as_object()->execute($this->conn);

Porem isso só funciona com um execute se tento rodar outra procedure quando acaba essa da o erro no qual pedia ajuda para o pessoal aqui.


Se alguém poder me ajudar fico muito grato.

Segue o meu erro novamente.
Database_Exception [ HY000 ]: SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute. [ CALL Get_List_Domain_Val(5); ] 


Att.
Adalberto Ap.

Para ver esta discussão na web, acesse https://groups.google.com/d/msg/kohana-php/-/JM7Acq7gzN0J.

Para postar neste grupo, envie um e-mail para kohan...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para kohana-php+...@googlegroups.com.

felipe bastos

unread,
Jul 18, 2012, 9:47:52 AM7/18/12
to kohan...@googlegroups.com

Veja em DB se tem um metodo para limpar a consulta .. pq o resultado da query anterior fica no objeto ate q seja liberado ..deve ser isso ..

Em mysql tem mysql_free_result .. no DB deve ter algo equivalente

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para kohan...@googlegroups.com.

Adalberto Ap

unread,
Jul 18, 2012, 1:19:30 PM7/18/12
to kohan...@googlegroups.com
Mudei a conexão de PDO para MYSQLI

Baixei um modulo MYSQLI 

Ele tem um metodo: __destruct()

Que faz isso:
$this->_result->free();
$this->_result->close();

Não seria o suficiente para limpar a consulta?


Apesar disto estou com o mesmo problema.

Mais alguma ideia?

Att.
Adalberto Ap.
Reply all
Reply to author
Forward
0 new messages