JJ
Erro abir uma transação utilizando o MySQL
Estou tendo problemas ao utilizar o MySQL, o problema ocorre ao tentar abrir uma conexão "TTransaction::open('banco'); ", o framework retorna um erro, gostaria de saber como solucionar o problema.
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.
https://www.php.net/manual/en/ref.pdo-mysql.php
Fiz a modificação na classe TConnection porém ainda continua retornando o mesmo erro.
Segue os detalhes
Configuração da conexão
return [
'host' => "127.0.0.1",
'port' => "3306",
'name' => "banco",
'user' => "root",
'pass' => "",
'type' => "mysql",
'prep' => "1",
'zone' => "America/Sao_Paulo",
'char' => "utf8mb4"
];
Exception
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.
A documentação do PHP sugere a inclusão de um atributo na conexão
https://www.php.net/manual/en/ref.pdo-mysql.php
- <?php
- $pdo = new PDO("mysql:host=localhost;dbname=world", 'my_user', 'my_password');
- $pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
- $unbufferedResult = $pdo->query("SELECT Name FROM City");
- foreach ($unbufferedResult as $row) {
- echo $row['Name'] . PHP_EOL;
- }
- ?>
Fiz a modificação na classe TConnection porém ainda continua retornando o mesmo erro.
Editado 30/08/2023 (há 8 meses) - Clique para ver alterações
Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos
Quero me inscrever agora!
Pior que eu tbm estou tendo o mesmo problema aqui... inclusive o pablo respondeu meu help no face, mas o meu problema ainda não foi solucionado
Eu resolvi de duas formas diferentes
1º Removendo o zone do arquivo de configuração com o banco (note que está apenas comentado)
Exemplo
app/config/conexaoDoMeuBanco.php
2º Alterando a classe TConnection (lib/adianti/database/TConnection.php)
SUBSTITUINDO A LINHA 107
POR
Como não é indicado alterar o core do framework eu estou utilizando a primeira forma.