Link: https://adrianosites.com.br/conteudo/banco-de-dados-mysql-com-mysqli-ou-pdo-entenda-de-uma-vez.
A primeira confusão já começa quando alguns falam "vamos criar um sistema com banco de dados MySQLi".
Não existe banco de dados MySQLi, pois mysqli não é um banco e sim uma extensão/classe do PHP para tratar de assuntos relacionados a conexão com banco de dados MySQL (sem o i no final).
O MySQLi é uma extensão, assim como o PDO, e o antigo MySQL_connect, este último mysql_* já não não pode ser usado nas novas versões do PHP, já era obsoleto no PHP 5.3/5 e foi removido de forma definitiva no PHP 7, sendo então obrigatório usar PDO ou MySQLi.
Não sei se ficou totalmente claro que o mysqli não é o banco, mas sim apenas uma forma de se conectar ao banco MYSQL, ou seja o banco é MySQL.
Para ilustrar melhor temos um pequeno exemplo abaixo, imagine um servidor local, com um banco chamado 'SVENDAS' e uma tabela chamada 'PRODUTOS'.
Vejamos agora como se conectar a este banco usando o MySQLi
$link = new mysqli("localhost", "USUARIO", "SENHA", "SVENDAS");
$link->set_charset("utf8");
$query = $link->prepare("SELECT * FROM produtos");
$query->execute();
$res = $query->get_result();
foreach ( $res as $lista)
{
echo ''
";
echo $lista['pro_nome'];
}
Agora faremos a mesma coisa, só que usando PDO
$link = new PDO("mysql:host=localhost;dbname=SVENDAS","USUARIO","SENHA");
$link->exec("SET CHARACTER SET utf8");
$query = $link->prepare("SELECT * FROM produtos");
$query->execute();
$res = $query->fetchAll(PDO::FETCH_ASSOC);
foreach ( $res as $lista)
{
echo ''
";
echo $lista['pro_nome'];
}
Em todos os casos mostrados o banco é apenas MYSQL ok? Vimos aqui neste exemplo que MySQLi não é um banco de dados, e sim uma classe de manipulação do banco, assim como o PDO.
Espero que tenha ficado claro!! Caso queira aprender sobre PDO temos este curso aqui no site