Programação

segunda-feira, 24 de abril de 2023

MySQLi Object-Oriented, MySQLi Procedural ; PDO

Operações de base de dados em PHP são uma coisa muito crucial que é especialmente necessária em operações CRUD (Create; Read; Update, Delete)


Existem duas maneiras de se conectar a uma base de dados usando PHP: 

- MySQLi (“i” stands for improved)

- PDO (PHP Data Objects)


PDO pode funcionar em 12 sistemas de base de dados diferentes, enquanto o MySQLi funciona apenas com base de dados MySQL.


O PDO (PHP Data Objects) é uma extensão em PHP que fornece uma camada de abstração de acesso a base de dados.



Conexão com o servidor MySQL

  • MySQLi Procedural

    $con = mysqli_connect($host, $username, $senha, $dbname);
  • Estilo MySQLi Object-Oriented 

    $con = new mysqli($host, $username, $senha, $dbname)
  • PDO

    $con = new PDO("mysql:host=$host;dbname=$bdname",$username,$senha); 
Execução de consultas

  • MySQLi Procedural

    mysqli_query($con, $query)
  • MySQLi Object-Oriented

    $con->query($query);
  • PDO

    $stmt = $con->prepare($query);
    $stmt->execute();
Fechar Conexão
  • $con->close();

Abordagem MySQLi procedural:
Abordagem MySQLi Orientada a Objetos:
CREATE TABLE `Student` (
  `NIF` int(13) NOT NULL,
  `Name` varchar(255) NOT NULL,
  `City` varchar(255) NOT NULL,
  PRIMARY KEY (`NIF`)
);


Abordagem PDO:



Os programadores orientados a objetos preferem o PDO devido à sua compatibilidade com um grande número de bases de dados.
FUNÇÕES DE RECOLHA/BUSCA de DADOS

PDO: O PDO tem muitas instruções embutidas que ajudam nesses casos.

  • PDOStatement::fetchAll(): Retorna o resultado na forma de um array, contendo todas as linhas do resultado.  (mais usada)

Segurança: injeções de SQL para interromper o base de dados (ver)


---------------------------------------------------------------------------------------

Os benefícios reais do PDO são:

  • segurança ( declarações preparadas utilizáveis )
  • usabilidade (muitas funções auxiliares para automatizar operações de rotina)
  • reusabilidade (API unificada para acessar vários bancos de dados, do SQLite ao Oracle)


------------------------------------------------------------------------------


Listar dados da base de dados em PHP PDO 



CREATE TABLE IF NOT EXISTS `students` (
  `nif` int(13) NOT NULL ,
  `name` varchar(100) NOT NULL,
  PRIMARY KEY (`nif`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

Differences between MyISAM and InnoDB

InnoDB is more stable, faster, and easier to set up; it also supports transactions


INSERT INTO `students` (`nif`, `name`) VALUES (133333, 'Rui Jorge'), (12222, 'Ana Rita'), (12142, 'Justino Paz');





MANUAL PDO
  

Sem comentários:

Enviar um comentário