9
votes

Qu'est-ce que PDO & Pourquoi devrais-je l'utiliser?

Les gens continuent de mentionner que je devrais utiliser PDO dans mon PHP lors de votre traitement avec MySQL, je n'ai jamais entendu parler de cela avant.

Qu'est-ce que PDO? Comment est-il utilisé et quels sont les avantages et les inconvénients?

merci,


5 commentaires

Dupliqué possible de MySQL vs PDO


Regardez également MySQLI. C'est une classe OOP pour accéder à MySQL dans PHP. C'est un peu un mélange entre SQL brut et PDO.


@T. Brian Jones parlez-vous de la déclaration préparée?


@Daveb Si vous trouvez le post utile, n'oubliez pas de le marquer comme répondu :)


Bonjour, voici un tutoriel complet sur PHP PDO, programmerblog.net/php-pdo- ajax-didacticiel-exemple et php mysqli - programmerblog.net/php- mysqli-tutoriel-for-débutants


4 Réponses :




15
votes

considère PDO comme une classe intégrée qui est emballée avec PHP pour que vous puissiez interagir avec votre base de données. Tout en développant une application PHP, vous devez prendre soin de nombreuses choses comme Établir une connexion, créer une requête, pour récupérer le résultat de convertir la ressource en une matrice, évacuez l'injection MySQL en utilisant mysql_real_escape_string () code> c'est un Beaucoup de choses à prendre en charge, moindres mais non les dernières considérons une situation où vous souhaitez passer de MySQL à MySQLI ou MSSQL pour que vous ayez besoin de passer par toutes les fonctions et de modifier toutes les lignes de code pour répondre au besoin. AOP éradiquer tout ce problème en fournissant une classe centralisée.

Pour élaborer, consultez le code ci-dessous. p>

Pour établir une connexion à MySQL à l'aide de PDO: P>

$sth = $dbh->prepare('INSERT INTO users(name,email) VALUES(:name, :email)');
$sth->bindParam(':name', 'My Name');
$sth->bindParam(':email', 'email@email.com');
$sth->execute();


4 commentaires

Ibrahim, savez-vous ce que $ STH signifie? Et quels sont les deux points? Exemple :: Nom,: emai. Je ne comprends pas ce bindaram non plus. Merci!


$ STH est une variable utilisée pour renvoyer Poignée de l'instruction pour les requêtes PDO, : nom ,: e-mail etc. sont des espaces réservés, Bindaram remplacer : Nom avec mon nom dans l'exemple ci-dessus. Vous devriez passer par l'article mentionné ci-dessus, l'auteur a mis de très bons points qui vous aideront à comprendre le concept


J'ai lu l'article entier. Ce PDO semble être une pratique très avancée et sécurisée, mais je ne comprenais pas comment les espaces réservés protègent le mySQL et ne cesse d'injections. Ils ressemblent à des variables régulières?


Lorsque vous passez un support de lieu vers la méthode BindParam, avant d'exécuter la requête SQL, PDO appelle mysql_escapape_string () sur chacun de cet espace réservé pour échapper au script malveillant Remarque: je ne sais pas quoi PDO fait en interne pour exécuter en toute sécurité la requête et la mention de mysql_escapape_string () n'était qu'un exemple et pas nécessairement vrai.



0
votes

PDO Qu'est-ce que c'est?

PDO signifie des objets de données PHP. Il s'agit d'une interface qui permet aux scripts PHP d'interroger une base de données via SQL requêtes.

PDO est une extension ajoutée à PHP afin que ses différentes fonctionnalités soient disponibles dans la langue. Il constitue une interface d'abstraction de la base de données, c'est-à-dire que toutes ses fonctions peuvent être utilisées pour exécuter des requêtes SQL quel que soit le SGBD. En d'autres termes, si l'application Web est basée sur le SGBM MySQL, nous pouvons migrer vers le SGBD PostgreSQL sans modifier le code source (certaines modifications mineures sont requises).

L'abstraction de la base de données est une forte. point par rapport aux anciennes méthodes d'y accéder. De plus, il constitue l'avantage ultime de l'AOP, sans être le seul.

Le bon fonctionnement de PDO dépend de la disponibilité du pilote de base de données. Cela doit être pris en charge pour pouvoir interroger le SGBD souhaité.

Pour déclarer le pilote SBGD MySQL par exemple, accédez au fichier php.ini et ajoutez la ligne suivante (s'il n'est pas déjà déclaré): Extension = php_pdo_mysql.dll Notez que la ligne suivante doit également apparaître: Extension = php_pdo.dll Cette étape est nécessaire pour les versions PHP inférieures à 5.3. Utilisation de l'objet PDO (connexion à une base de données) pour simplifier l'explication, j'utiliserai un exemple:

Supposons que le serveur de base de données est le serveur local (localhost) et la base de données (MySQL) que nous voulons La requête s'appelle "mabase". Pour pouvoir interroger cette base de données, nous utiliserons le nom d'utilisateur "utilisateur" et le mot de passe "1234". Bien sûr, l'utilisateur "utilisateur" a juste assez de privilèges pour interroger la base de données via des scripts PHP.

On suppose maintenant que dans la base de données "Mabase", une table nommée "utilisateurs" a été créée, le La structure est la suivante: xxx

Je suppose que vous êtes à l'aise avec la langue SQL. Sinon, il vous suffit d'exécuter ce code via l'outil PHPMYADMIN sur votre serveur.

Maintenant que tous les paramètres de notre base de données sont là. Nous verrons comment la questionner à l'aide de PHP via l'objet PDO. String de connexion de base de données (instance PDO) La chaîne de connexion est la représentation textuelle des informations de connexion de base de données installées sur un serveur. Déclarant la chaîne de connexion Dans ce cas, c'est comme créer une instance PDO comme celle-ci: xxx


0 commentaires