Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se
Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Problema com PDO, mas acho que é o caminho do arquivo que está errado.

Ola @Thiavo eu rodei o comando php -m e consta na minha máquina que o PDO está sim habilitado. mas mesmo assim ele não consegue encontrar o driver.

Como minhas pastas estão organizadas:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Segue a minhas classes:

ConnectionCreator.php

<?php

namespace Alura\Pdo\Domain\Infrastructure\Persistence;

use PDO;

class ConnectionCreator
{
    public static function createConnection(): PDO
    {
        $databasePath = __DIR__ . '/../../../database.sqlite';
        return new PDO('sqlite:' . $databasePath);
    }
}

listar-alunos.php

<?php

require_once "vendor/autoload.php";

use Alura\Pdo\Domain\Infrastructure\Persistence\ConnectionCreator;
use Alura\Pdo\Domain\Model\Student;

$pdo = ConnectionCreator::createConnection();

$statment = $pdo->query('SELECT * FROM students');

$studentDataList = $statment->fetchAll(PDO::FETCH_ASSOC);

$studentList = [];

foreach($studentDataList as $studentData) {
    $studentList[] = new Student(
        $studentData['id'],
        $studentData['name'],
        new DateTimeImmutable($studentData['birth_date'])
    );
}

echo "<pre>";

print_r($studentList);

echo "</pre>";

saída do terminal do comando php -m

prime@Inspiron5480f0f68e2e:~/projetos/pdo$ php -m
PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_sqlite' (tried: /usr/lib/php/20210902/pdo_sqlite (/usr/lib/php/20210902/pdo_sqlite: cannot open shared object file: No such file or directory), /usr/lib/php/20210902/pdo_sqlite.so (/usr/lib/php/20210902/pdo_sqlite.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
[PHP Modules]
calendar
Core
ctype
date
dom
exif
FFI
fileinfo
filter
ftp
gettext
hash
iconv
igbinary
imap
json
libxml
mbstring
openssl
pcntl
pcre
PDO
Phar
posix
readline
redis
Reflection
session
shmop
SimpleXML
sockets
sodium
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
xml
xmlreader
xmlwriter
xsl
Zend OPcache
zlib

[Zend Modules]
Zend OPcache
2 respostas

O PHP não tá encontrando o arquivo pdo_sqlite.

Vc tá usando qual sistema Operacional?

Se for windows, dá uma olhada se vc tá com o arquivo php_pdo_sqlite.dll . Geralmente ele fica na pasta onde o seu php esta instalado. Ex.: C:\php\ext\

Se for no linux, tente:

sudo apt-get install php8-sqlite
solução!

O SQLite não estava instalando na minha maquina, tive de rodar o commando

apt-get install sqlite3

isso resolveu. o sistema que eu estava utilizando era o Elementary OS.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software