Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

retorno do fetchall()

Boa noite, estou com outra dúvida.

Quando instanciado o objeto student, o valor de id foi passado como null. No entanto, quando eu faço o var_dump(fetchAll()), ele me retorna o id com o valor "1". O valor dessa propriedade recebeu o valor do retorno de PDO::exec()?

segue abaixo o código

<?php
use Alura\Pdo\Domain\Model\Student;

require_once 'vendor/autoload.php';

$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);
1 resposta
solução!

Oii, Bruno! Ótima pergunta.

Lembra quando você criou a tabela de students utilizando o seguinte código?

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

Poise, em um banco sqlite quando você está inserindo uma nova linha na tabela e não fornece um valor específico para a coluna de id ou INTEGER PRIMARY KEY, o sistema preencherá automaticamente essa coluna com um número inteiro não utilizado, normalmente sendo o próximo número sequencial após o maior id já presente na tabela.

Se quiser saber mais: https://www.sqlite.org/autoinc.html

Espero ter ajudado e bons estudos :)