4
respostas

[Dúvida] Não aparece a tabela criada

A tabela "videos" não aparece criada dentro do banco

Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: 1 no such table: videos in C:\Users\rafin\Documents\src\phpprojetos\aluraplay\pages\novo-video.php:6 Stack trace: #0 C:\Users\rafin\Documents\src\phpprojetos\aluraplay\pages\novo-video.php(6): PDO->prepare('INSERT INTO vid...') #1 {main} thrown in C:\Users\rafin\Documents\src\phpprojetos\aluraplay\pages\novo-video.php on line 6

pagina novo-video 

<?php
$dbpath = __DIR__.'../banco.sqlite';
$pdo = new PDO("sqlite:$dbpath");

$sql = 'INSERT INTO videos (url,title) VALUES(?,?)';
$statement = $pdo -> prepare($sql);
$statement -> bindValue(1, $_POST['url']);
$statement -> bindValue(1, $_POST['title']);

var_dump($statement -> execute());


pagina criar-banco 


<?php

$dbpath = __DIR__.'/banco.sqlite';

$pdo = new PDO(dsn:"sqlite:$dbpath");

$pdo -> exec(statement:'CREATE TABLE videos
(id INTEGER PRIMARY KEY, url TEXT, title TEXT);');
4 respostas

Olá, Matheus! Tudo bem?

No seu arquivo criar-banco.php você colocou assim:

$pdo = new PDO(dsn:"sqlite:$dbpath");

Retire o dsn: e deixe assim:

$pdo = new PDO("sqlite:$dbpath");

Esse dns: que aparece é uma ajuda da IDE PHPStorm para nos dizer qual parâmetro um método ou classe espera receber.

Depois disso tente executar o arquivo criar-banco.php;

Outra coisa, que na aula seguinte: Realizando a busca, o instrutor corrige um erro que ele deixou passar no arquivo novo-video.php, ele faz o bind_value apenas do 1º parâmetro, por isso no arquivo novo-video.php troque:

<?php
$dbpath = __DIR__.'../banco.sqlite';
$pdo = new PDO("sqlite:$dbpath");

$sql = 'INSERT INTO videos (url,title) VALUES(?,?)';
$statement = $pdo -> prepare($sql);
$statement -> bindValue(1, $_POST['url']);
$statement -> bindValue(2, $_POST['title']); // mude aqui para 2º parâmetro

var_dump($statement -> execute());

Qualquer dúvida estou à disposição, bons estudos :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓

Obrigado pela informação, ajudou bastante aqui!

aqui continuou o mesmo erro

Matheus o arquivo banco.sqlite foi criado? Se sim ele foi criado no diretório raiz do projeto?