PDO MySqli Comparison

by Guna 2013-12-25 12:11:47

DRIVER SUPPORT
- backend switch in future made easy

- PDO supports upto 12 drivers like mysql,ms sql sever,informix,oracle etc..

- MYSQLi supports only mysql

NAMED PARAMETERS
- makes binding values to the query easier

example:

$params = array(':username' => 'test', ':email' => $mail);

PDO:
$pdo->prepare('
SELECT * FROM users
WHERE username = :username
AND email = :email
');

$pdo->execute($params);

MYSQLI
$query = $mysqli->prepare('
SELECT * FROM users
WHERE username = ?
AND email = ?
');

$query->bind_param('sss', 'test', $mail);
$query->execute();

PERFORMANCE

As always there are debates going deciding which one is quicker, even if PDO is bit slower we can compromise it for its rich driver support and named parameters etc...


COMMON FEATURES

prepared statements

The query only needs to be parsed ( or prepared ) once, but can be executed multiple times with the
same or different parameters,
so while using multiple inserts / selects with different params will be executed much faster.

besides that it also reduces sql injection because the query parsed and fixed,
we will supply only the data to the query by using bindParam method.

example:


$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);

// insert one row
$name = 'one';
$value = 1;
$stmt->execute();

// insert another row with different values
$name = 'two';
$value = 2;
$stmt->execute();
?>


stored procedures

Both api supports stored procedure

Tagged in:

1249
like
0
dislike
0
mail
flag

You must LOGIN to add comments