1
resposta

PHP Fatal error: Uncaught PDOException: SQLSTATE[42S22]

Depois das mudanças do banco de dados para o MySQL estou recebendo um erro quando executo vincular-aluno-curso.php:

PHP Fatal error:  Uncaught PDOException: SQLSTATE[42S22]: Column not found: 1054 Unknown column 't7.id' in 'on clause' in C:\Users\debor\PhpstormProjects\doctrine\vendor\doctrine\dbal\src\Driver\PDO\Statement.php:101
{...}

Next Doctrine\DBAL\Driver\PDO\Exception: SQLSTATE[42S22]: Column not found: 1054 Unknown column 't7.id' in 'on clause' in C:\Users\debor\PhpstormProjects\doctrine\vendor\doctrine\dbal\src\Driver\PDO\Exception.php:30
Stack trace:
{...}

Next Doctrine\DBAL\Exception\InvalidFieldNameException: An exception occurred while executing a query: SQLSTATE[42S22]: Column not found: 1054 Unknown column 't7.id' in 'on clause' in 
{...}

O erro começou depois das alterações no EntityManagerFactory para o banco MySQL: class EntityManagerFactory

    {
        /**
         * @return EntityManagerInterface
         * @throws \Doctrine\ORM\ORMException
         */
        public function getEntityManager(): EntityManagerInterface
        {
            $rootDir = __DIR__ . '/../..';
            $config = Setup::createAttributeMetadataConfiguration(
                [$rootDir . '/src'],
                true
            );
            $connection = [
                'driver' => 'pdo_mysql',
                'host' => 'localhost:3306',
                'dbname' => 'doctrine',
                'user' => 'root',
                'password' => '******' // A SENHA ESTÁ CORRETA
    ];
            return EntityManager::create($connection, $config);
        }
    }

Tenho o mesmo erro quando tento executar buscar-alunos, atualizar-nome-aluno e remover-alunos.

E quando executo relatorio-de-cursos-por-aluno-dql, recebo a query que foi executada, mas nem um resultado, e quando eu altero meu alunoRepository de:

    public function buscaCursosPorAluno()
    {
        $query = $this->createQueryBuilder('a')
            ->join('a.telefone', 't')
            ->join('a.cursos', 'c')
            ->addSelect('t')
            ->addSelect('c')
            ->getQuery();

        return $query->getResult();
    }

Para:

class AlunoRepository extends EntityRepository
{
    public function buscaCursosPorAluno()
    {
        $query = $this->createQueryBuilder('a')
            ->getQuery();

        return $query->getResult();
    }
}

Recebo várias querys executadas, porém recebo os resultados da consulta.

1 resposta

Débora, a estrutura do seu banco no MySQL não foi criada corretamente.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software