1
resposta

Retorno bool(false)

Boa tarde, ao inserir o primeiro dado na tabela, estou recebendo o retorno bool(false) ao invés de indicar uma linha, como no vídeo.

O banco de dados foi criado como no vídeo, um arquivo vazio chamado banco.sqlite na mesma pasta do diretório.

Meu arquivo de conexão está da seguinte forma:

<?php

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

echo "Conectei";

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

E o arquivo de inserir está assim:

<?php

use Alura\Pdo\Domain\Model\Student;
require 'vendor/autoload.php';

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

$student = new Student(null, 'Vinicius Dias', new \DateTimeImmutable('1997-10-15'));

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


var_dump($pdo->exec($sqlInsert));

Utilizo o PHP Storm. Alguém saberia ajudar? Grado desde já.

1 resposta

Olá Lucas, tudo bem?

Gostaria de pedir desculpas pela demora em responder o seu tópico.

Pelo código que você compartilhou, parece que a conexão com o banco de dados está funcionando corretamente, então o problema pode estar no comando SQL de inserção de dados.

Uma sugestão seria verificar se os valores passados para o comando SQL estão corretos. Por exemplo, verificar se os valores de $student->name() e $student->birthDate() são válidos, pois isso pode causar um erro na execução do comando SQL.

Espero que essa sugestão ajude a resolver o seu problema. Caso ainda tenha dúvidas, é só perguntar.

Espero ter ajudado e bons estudos!