PHP & MySQL:
PDO x MySQLi
Marcolin, IXCsoft.
Script
● Introduction;
● Comparison;
● Examples;
● Kahoot!.
PHP Data Objects (PDO)
● Native Module with PHP > 5;
● Object Oriented Paradigm;
● Relational Database;
● Interface;
● Abstraction Layer;
● Not rewrite queries;
Abstract
Supported Drivers
Supported Drivers
Enabling the extension (php.ini)
Linux Windows
Available Drivers
Start connection
getInstance()
insertUser()
deleteUser()
listAllUsers
SGBD’s
PDO::Exceptions
setFetchMode()
PDO x MySQLi
getConnect()
Named Parameters
Database Migration (mysql -> pg)
Database Migration (mysql -> pg)
Database Migration (mysql -> pg)
Security / Prepared Statements
Security / Prepared Statements
Security / Prepared Statements
● Pre-prepared queries;
● Split data entry;
Security / Prepared Statements
Security / Prepared Statements
Security / Prepared Statements
● PDO : using client-side (emulating);
● MySQLi: using server-side.
Security / Prepared Statements
● PDO : using client-side (emulating);
● MySQLi: using server-side.
Client-side Server-side
Transactions
● PDO ::beginTransaction();
● PDO ::commit();
● PDO ::rollBack();
Transactions
● PDO ::beginTransaction();
● PDO ::commit();
● PDO ::rollBack()
● Properties:
○ atomicity;
○ consistency;
○ isolation;
○ durability.
Class PDO
References
● https://www.php.net/manual/pt_BR/book.pdo.php
● https://www.php.net/manual/pt_BR/class.pdo.php
● https://websitebeaver.com/php-pdo-prepared-statements-to-prevent-sql-injection
● http://miscelaneadoconhecimento.com/mysql/sql/pdo.html
● https://code.tutsplus.com/pt/tutorials/pdo-vs-mysqli-which-should-you-use--net-24059
● https://php.net/manual/pt_BR/book.mysqli.php

PHP & MySQL: PDO x MySQLi