background preloader

PHP Data Objects

Facebook Twitter

PDO : Une autre façon d'accéder à vos bases de données. Introduction Qu'est-ce que PDO ?

PDO : Une autre façon d'accéder à vos bases de données

PDO (PHP Data Objects) est une extension PHP qui définit une interface d'accès à une base de données. Il a en quelque-sorte le même rôle que les fonctions mysql_connect, mysql_query, ... Il est inclus dans PHP depuis sa version 5.1. Pour la version 5.0, vous pouvez l'obtenir avec l'extension PECL. Qu'a-t-il de plus que les fonctions mysql_... ? Son principal avantage est qu'il permet une abstraction pour l'accès aux données. Mais comme chaque serveur SQL n'exécute pas les requêtes SQL de la même façon, il est possible que vous ayez à réécrire certaines requêtes. PDO est aussi orienté objet, vous pouvez donc l'étendre et gérer les erreurs avec les exceptions.

Se connecter à votre serveur SQL C'est la partie la plus simple. J'ai souligné ce que vous pouvez modifier. Exécuter une requête sans retour Qu'est-ce que j'appelle une requête sans retour ? Pour ce type de requête, il est préférable d'utiliser la méthode exec(), qui retourne le nombre de ligne affectées. Tutoriel Vidéo PHP Sécurité, Les injections SQL. Fonction PHP contre les injections SQL. En sécurité informatique, une injection SQL est une faille peu compliquée à mettre en oeuvre et qui peut faire beaucoup de dégâts.

Fonction PHP contre les injections SQL

Cet article présente rapidement ce type de faille et propose une fonction PHP pour se protéger contre se type de menace. Injection SQL Présentation de ce type de faille Les injections SQL consiste à utiliser des données qui vont modifier une requête SQL de bases pour un autre usage que celui prévu initialement. Ces failles sont possible lorsque les données d’entrées ne sont pas protégée. SELECT identifiant FROM utilisateur WHERE login = 'nom_utilisateur' AND password = 'XC5AF32'; Cette requête permet de récupérer l’identifiant de l’utilisateur si le login et le mot de passe sont correct. Dans cette requête, le login est entré par l’utilisateur.

SELECT identifiant FROM utilisateur WHERE login = 'admin' --' AND password = 'faux_password'; Les 2 tirets signifient que le reste de la requête est en commentaire. Les transactions avec MySQL et PDO. PDO comme interface avec MySQL Présentation de PDO Il existe de nombreux moyens pour se connecter à une base de données avec PHP, l'un d'eux est d'utiliser PDO qui permet notamment d'utiliser les transactions nativement.

Les transactions avec MySQL et PDO

Pour ceux qui ne connaissent pas je vous conseille de lire ce tutoriel afin d'avoir cette interface en main. PDO fait notamment intervenir le concept de programmation orientée objet, cela reste néanmoins très simple et accessible à celui qui n'aurait jamais programmé en objet. La première chose à faire est de se connecter à la base de données : il faut comme avec le pilote MySQl habituel fournir les informations suivantes : L'adresse de la base de données (localhost si vous travaillez en local)Le nom de la base de données (ici transactions)Le nom d'utilisateur (ici root)Et bien sûr le mot de passe pour accéder à la base de données (ici test)

Développeur Magento Certifié Freelance Nicolas Verhoye (Lille, Nord) – PHP : Initiation à la classe PDO. La classe PDO va vous permettre d’accéder et de communiquer directement et de façon uniforme à n’importe quelle base de données parmi celles supportées (MySQL, SQLite, PostgreSQL, Oracle…) en vous aidant de fonctionnalités avancées.

Développeur Magento Certifié Freelance Nicolas Verhoye (Lille, Nord) – PHP : Initiation à la classe PDO

Nous allons découvrir dans cet article comment créer les habituelles requêtes SELECT, UPDATE, INSERT et les quelques nouveautés que propose cet objet, notamment les notions de préparation des requêtes et de transaction. Les pré-requis PDO à été intégré à PHP à partir de la version 5.1 (Ce fut d’ailleurs la raison principale de la sortie de cette version mineure). Si vous testez sur un logiciel de simulation comme WAMP5 ou EasyPHP assurez-vous que la version de PHP soit au moins à 5.1. [PHP] Utiliser PDO avec PHP - Jean-Baptiste VIGNERON.

Comme le savez, PHP intègre la programmation orientée objet depuis la version 4 et a été largement améliorée dans la version 5.

[PHP] Utiliser PDO avec PHP - Jean-Baptiste VIGNERON

Il y a notamment eu l’apparition des PHP Data Objects dit également PDO qui ne sont rien d’autres que des classes et qui vous permettent d’accéder à une base de données. J’utilise les fonctions mysql_, mssql_ ou ora_ pour accéder à ma base de données. Pourquoi passer à PDO ? Et bien la réponse se trouve un peu dans la question. En effet, pour chaque SGBD on utilise des fonctions différentes. Avec PDO, vous n’aurez qu’une seule ligne à changer: celle où vous instanciez votre base de données. Avant de commencer… Si vous êtes en local (avec EasyPHP ou WampServer par exemple), assurez vous que PDO est activé. Si vous avez un hébergement en ligne, selon certains forums, PDO n’est accessible qu’avec SQLite, un autre SGBD.

Comment se connecter à la base de données ? La connexion se faisait auparavant avec les fonctions mysql_connect() et mysql_select_db(). PDO. I wanted to extend PDO class to store statistics of DB usage, and I faced some problems.

PDO

I wanted to count number of created statements and number of their executings. So PDOStatement should have link to PDO that created it and stores the statistical info. The problem was that I didn't knew how PDO creates PDOStatement (constructor parameters and so on), so I have created these two classes: <?