6
respostas

ERRO PDO

Oi, estou com esse problema e não sei como resolver. Alguem pode me ajudar? Obrigada!

<?php

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

echo 'conectei';
Fatal error: Uncaught PDOException: could not find driver in C:\Users\Daniela Conceiçao\OneDrive\Documentos\Alura curso\Bancos-de-dados-PHP\php-pdo-projeto-inicial\conexao.php:4
Stack trace:
#0 C:\Users\Daniela Conceiçao\OneDrive\Documentos\Alura curso\Bancos-de-dados-PHP\php-pdo-projeto-inicial\conexao.php(4): PDO->__construct('sqlite:C:\\Users...')
#1 {main}
  thrown in C:\Users\Daniela Conceiçao\OneDrive\Documentos\Alura curso\Bancos-de-dados-PHP\php-pdo-projeto-inicial\conexao.php on line 4
6 respostas

Bom dia Daniela, vc precisa habilitar a extensão do sqlite no seu php.ini

Boa tarde Guilherme, olha, baixei e extrair o arquivo inicial, em seguida executei o comando do composer na pasta do projeto:

C:\Users\Daniela Conceiçao\Downloads\php-pdo-projeto-inicial>composer dump-autoload
Generating autoload files
Generated autoload files

Não precisei baixar o composer e nem o php, pois eu ja tinha no computador. Como eu uso o windows habilitei a extensão do sqlite:

;extension=pdo_sqlite \\  extension=pdo_sqlite

Aparentemente eu fiz tudo certo, não consigo identificar o erro. Pode me ajudar?

Oi Daniela, tudo bom?

Caso você tenha deixado da forma que está no seu comentário : ;extension=pdo_sqlite \\ extension=pdo_sqlite modifique deixando assim: extension=pdo_sqlite. Basta apenas descomentar a linha removendo o ponto e vígula, sem adicionar nada.

Para tirar a dúvida se a extensão está realmente habiliatada ou não, digite o comando php -m em seu terminal e veja se tem "pdo_sqlite" na lista de extensões habilitadas.

Oi Diego, não deixei da forma que esta no comentario, eu so queria mostrar o antes e o depois. Enfim, mesmo assim ta dando erro por isso não estou entendendo o motivo.

;extension=pdo_mysql
;extension=pdo_oci
;extension=pdo_odbc
;extension=pdo_pgsql
extension=pdo_sqlite
;extension=pgsql
;extension=shmop

Fiz o que você falou e no terminal não ta aparecendo o pdo_sqlite. Ja assistir a mesma aula mais de 10 vezes, ja não sei mais o que fazer.

C:\Users\Daniela Conceiçao>php -m
[PHP Modules]
bcmath
calendar
Core
ctype
curl
date
dom
filter
hash
iconv
json
libxml
mbstring
mysqlnd
openssl
pcre
PDO
Phar
readline
Reflection
session
SimpleXML
SPL
standard
tokenizer
xml
xmlreader
xmlwriter
zip
zlib

[Zend Modules]

Oi Daniela,

Existem dois arquivos .ini na pasta php, apesar de improvável, pode ser que vc tenha habilitado a extensão no arquivo errado.

Execute php --ini, esse comando irá te informar o caminho da pasta onde o arquivo .ini está localizado e veja se é nesse arquivo onde você realmente habilitou a extensão.

Oi Diego, eu vi que em ambientes Unix, o PDO e o driver que se conecta com SQLite já estão habilitados por padrão, ja que com o windows eu não conseguir habilitar a extensão do banco de dados e continuava dando erro, então eu instalei uma máquina virtual linux e em seguida preparei o ambiente. Mesmo assim o erro persiste.