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

(PHP & SQLITE) var_dump me retorna "bool(false)"

fiz o seguinte código na tentativa de adicionar estas informações ao banco de dados sqlite, mas parece que ele não adiciona nada ao banco e quando feito um var_dump no codigo ele me retorna com "bool(false)"

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

var_dump($pdo->exec('CREATE TABLE students (name TEXT, password TEXT, mail TEXT, phone INTEGER PRIMARY KEY);'));
var_dump($pdo->exec('INSERT INTO students (name,password,mail,phone) VALUES ('Vitor', '123456', 'vitor@hotmail.com', 27997909090);"));
9 respostas

Olá, Norman. Estranho ele retornar false pois há um erro de sintaxe no seu segundo exec.

Você abriu com aspas simples (') e fechou com aspas duplas (").

Desculpe, este só fiz aqui na hora de mover para cá, no meu código esta com aspas duplas ... (somente o segundo esta com aspas duplas)

os codigos estão assim:

<?php
// > php primeiro-proj/conexao.php

// selecionando o banco de dados 
// _DIR_ = diretorio atual
$databasePath = __DIR__ . '/banco.sqlite';
$pdo = new PDO ('sqlite:' . $databasePath);

// mensagem de confirmação
echo 'Estou dentro!';
echo "\n";

var_dump($pdo->exec('CREATE TABLE students (name TEXT, password TEXT, mail TEXT, phone INTEGER PRIMARY KEY);'));

$statement = $pdo->query('SELECT * FROM students');
var_dump($statement->fetchAll());
<?php
// > php primeiro-proj/fake-register-student.php
require_once __DIR__ . '\conexao.php';

echo 'inicializado o arquivo de registro de novos alunos...';
echo "\n";

$name = "Vitor";
$password = "12345";
$mail = "vitor.deernose@hotmail.com";
$phone = "27997503272";

var_dump($pdo->exec("INSERT INTO students (name,password,mail,phone) VALUES ('Vitor', '123456', 'vitor@hotmail.com', 27997909090);"));

resposta do console:

Estou dentro!
bool(false)
array(0) {
}
inicializado o arquivo de registro de novos alunos...
bool(false)

Opa, Norman.

Como seu exemplo tá diferente do aplicado nas aulas. Suponho que você já tenha finalizado o treinamento.

Tentou as técnicas de verificação de erros que aprendemos no curso

solução!

Acabei deletando o banco.sqlite e o codigo funcionou, não sei oque aconteceu mas esta resolvido, desculpa o incomodo...

Provavelmente você tentando criar a tabela já existente.

não pode ser porque antes de incluir o aluno eu coloquei no codigo para fazer um var_dump mas a resposta dele era

array(0) { } como mostrado acima mesmo assim.. Duvida solucionada tópico fechado.

Exato, Norman. Se o SELECT funcionava, é porque a tabela já existia.

Se a tabela já existia, o CREATE TABLE era pra falhar mesmo.