Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Retornando array com 10 elementos

<?php

require_once 'vendor/autoload.php';

$dataBasePath = __DIR__ . '/banco.sqlite';
$pdo = new PDO("sqlite:$dataBasePath");

$statement = $pdo->query('SELECT * FROM students');

var_dump($statement->fetchAll());

O meu var_dump está retornando um array com 10 itens. Não faço ideia do pq isso está acontecendo

abaixo está o código da criação da tabela no banco e em seguida da criação do estudante

<?php

$databasePath = __DIR__ . '/banco.sqlite';
$pdo = new PDO("sqlite:$databasePath");

$pdo->exec(
        'CREATE TABLE students
            (id INTEGER PRIMARY KEY,
            name TEXT,
            birth_date TEXT
        );
    ');
<?php

require_once 'vendor/autoload.php';

use Alura\Pdo\Domain\Model\Student;

$dataBasePath = __DIR__ . '/banco.sqlite';
$pdo = new PDO("sqlite:$dataBasePath");

$student = new Student(null, 'Bruno Barreto', new \DateTimeImmutable('1989-12-10'));

$sqlInsert = "INSERT INTO students(name, birth_date) VALUES ('{$student->name()}', '{$student->birthDate()->format('Y-m-d')}')";

$pdo->exec($sqlInsert);
2 respostas
solução!

Oii, Bruno!

Se o fetchAll() está retornando um array com 10 elementos, isso significa que existem 10 registros na tabela students.

Você pode tentar limpar a tabela students e executar o script de inserção novamente. Aqui está um exemplo de como você pode fazer isso:

$pdo->exec('DELETE FROM students');

Depois disso, execute o script de inserção uma vez e veja se o fetchAll() retorna um array com um elemento.

Espero ter ajudado e bons estudos!

Muito obrigado, Resolvido! =]