Chargement...

PHP PDO MySQL


PDO c'est quoi?

PDO ( pour PHP Data Object ) est une interface qui peut accéder à une base de données ( MySQL par exemple ) depuis PHP.
La classe PDO est orientée objet et existe depuis PHP 5.1.0

Activer PDO

Pour activer PDO assurez-vous que la ligne suivante est décommentée dans le fichier php.ini
extension=php_pdo_mysql.dll

Table d'exemple pour PDO

Nous utiliserons les données suivantes pour les exemples:
CREATE DATABASE IF NOT EXISTS monsiteweb;
USE monsiteweb;
DROP TABLE IF EXISTS visiteurs;
CREATE TABLE visiteurs
( id int, adresse_ip varchar(255), date datetime );
DROP TABLE IF EXISTS users;
CREATE TABLE users
( id int, nom varchar(255), adresse_ip varchar(255) );
INSERT INTO visiteurs (id, date, adresse_ip)
VALUES
( "1", "2013-11-20 15:05:13", "5.20.4.96" ),
( "2", "2012-05-15 23:55:10", "105.12.3.6" ),
( "3", "2013-10-08 12:14:06", "52.24.23.3" ),
( "4", "2013-06-07 04:15:00", "36.45.25.204" );

Connection à une base de données via PDO

<?php
define("PDO_HOST", "localhost");
define("PDO_DBBASE", "monsiteweb");
define("PDO_USER", "root");
define("PDO_PW", "");
try{
$connection = new PDO(
"mysql:host=" . PDO_HOST . ";".
"dbname=" . PDO_DBBASE, PDO_USER, PDO_PW,
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8") );
}
catch (PDOException $e){
print "Erreur !: " . $e->getMessage() . "<br/>";
die();
}
?>

Exécuter une requête SQL

La syntaxe pour exécuter une requête SQL est la suivante;
<?php
$query = " UPDATE visiteurs SET date = "";
$r = $connection->query( $query );
?>

QUOTE / sécurité

La méthode Quote permet de sécuriser vos requêtes. En effet, il ne faut jamais faire confiance aux données qu'envoit l'utilisateur, utiliser la méthode "quote" permet de sécuriser les données efficacement.

Exemple:
<?php
$query = " UPDATE visiteurs SET date = " . $connection->quote( $data ) . ";
$r = $connection->query( $query );
?>

Préparer une requète SQL

Vous pouvez également préparer vos requetes pour éviter toute injection SQL :
<?php
$query = " INSERT INTO visiteurs SET date = NOW(), nom = ?, adresse_ip = ? ;
$data = array( "OLIVIER", "145.50.10.2" );
$sth = $connection->prepare( $query );
$sth->execute( $data );
?>

SELECT

Exemple de code pour exécuter une requète et recevoir le résultat dans un tableau.
<?php
$query = "SELECT * FROM visiteurs;";
$r = $connection->query( $query )->fetchAll(PDO::FETCH_ASSOC);
var_dump( $r );
?>



UNE QUESTION SUR L'ARTICLE?


CSSW Apprendre à créer son site web CSSW