Maison développement back-end tutoriel php Explication détaillée de la classe PDO en PHP5

Explication détaillée de la classe PDO en PHP5

May 19, 2018 am 09:14 AM
php php5

Cet article présente principalement l'explication détaillée de la classe PDO en PHP5. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

weightQu'est-ce que l'AOP ? L'extension POD (PHP Data Object) a été ajoutée en PHP5. En PHP6, PDO sera utilisé par défaut pour se connecter à la base de données. Toutes les extensions non-PDO seront supprimées de l'extension en PHP6. Cette extension fournit la classe PDO intégrée à PHP pour accéder à la base de données. Différentes bases de données utilisent le même nom de méthode pour résoudre le problème des connexions de base de données incohérentes. Je l'ai configuré pour le développement sous Windows. ■L'objectif de PDO

Fournir une API légère, claire et pratique
Unifier les fonctionnalités communes des différentes bibliothèques SGBDR, mais n'exclut pas des fonctionnalités plus avancées.
Fournit en option un plus grand degré d'abstraction/compatibilité via des scripts PHP.

Caractéristiques du PDO :

Performance. PDO a appris dès le début les succès et les échecs de l'extension des bases de données existantes. Le code de PDO étant tout nouveau, nous avons la possibilité de repenser entièrement les performances pour tirer parti des dernières fonctionnalités de PHP 5.
Capacité. PDO est conçu pour fournir des fonctionnalités de base de données communes comme base tout en offrant un accès facile aux fonctionnalités uniques d'un SGBDR.
Simple. PDO est conçu pour vous faciliter l’utilisation des bases de données. L'API ne force pas son chemin dans votre code et indique clairement ce que fait chaque appel de fonction.
Extensible au moment de l'exécution. L'extension PDO est modulaire, vous permettant de charger les pilotes pour votre backend de base de données au moment de l'exécution sans avoir à recompiler ou réinstaller l'intégralité du programme PHP. Par exemple, l'extension PDO_OCI implémente l'API de la base de données Oracle au lieu de l'extension PDO. Il existe également des pilotes pour MySQL, PostgreSQL, ODBC et Firebird, et d'autres sont en développement. [separator]


■Installation de PDO
Voici l'extension PDO pour le développement sous WINDOWS Si vous souhaitez l'installer et la configurer sous Linux, veuillez chercher ailleurs.
Exigences de version : php5.1 et les versions ultérieures sont déjà incluses dans le package ; php5.0.x doit être téléchargé depuis pecl.php.net et placé dans votre bibliothèque d'extensions, qui est l'extension du dossier dans lequel PHP se trouve le dossier ; le manuel indique que les versions antérieures à 5.0 ne peuvent pas exécuter les extensions PDO. Configuration :
Modifiez votre fichier de configuration php.ini pour qu'il prenne en charge pdo (Si vous ne comprenez pas php.ini, précisez d'abord que vous devez modifier le php.ini affiché lors de l'appel de votre fonction phpinfo(). . ) Supprimez le point-virgule devant extension=php_pdo.dll Le point-virgule est le symbole de commentaire du fichier de configuration php. Cette extension est nécessaire. Plus bas se trouvent
;extension=php_pdo.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_informix.dll
;extension=php_pdo_mssql.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_oci8.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll correspondant à chaque extension Les bases de données sont :
Nom du pilote Bases de données prises en charge
PDO_DBLIB FreeTDS / Microsoft SQL Server / Sybase
PDO_FIREBIRD Firebird/Interbase 6
PDO_INFORMIX IBM Informix Dynamic Server
PDO_MYSQL MySQL 3.x/4.x
PDO_OCI Oracle Call Interface
PDO_ODBC ODBC v3 (IBM DB2, unixODBC et win32 ODBC)
PDO_PGSQL PostgreSQL
PDO_SQLITE SQLite 3 et SQLite 2
Quelle base de données vous souhaitez utiliser, ajoutez simplement l'extension correspondante Juste supprimez le symbole de commentaire ";" devant.

weightUtilisez PDO
Je suppose ici que vous avez installé mysql. Sinon, veuillez d'abord trouver un moyen de l'installer. Le mien est mysql5.0.22, et le passant dans le noir utilise MySQL 4.0.26. . Également disponible.
★Connexion à la base de données :
Nous utilisons l'exemple suivant pour analyser la connexion PDO à la base de données,


$dbms='mysql' //Type de base de données; oracle En utilisant ODI, pour les développeurs qui utilisent des bases de données différentes, il leur suffit de changer cela, et il n'est pas nécessaire de mémoriser autant de fonctions
$host='localhost'; //Nom d'hôte de la base de données
$dbName=' test' ; //Base de données utilisée
$user='root'; //Nom d'utilisateur de connexion à la base de données
$pass='' //Mot de passe correspondant
$dsn="$dbms:host=$host ;dbname=$dbName";
//

try {
$dbh = new PDO($dsn, $user, $pass); //Initialiser un objet PDO signifie créer une connexion à une base de données object $dbh
echo "Connexion réussie
";
/*Vous pouvez également effectuer une opération de recherche

foreach ($dbh->query('Select * from FOO' ) comme $row) {
                                                                            print_r($row);
} catch (PDOException $e) {
mourir ("Erreur ! : " . $e->getMessage() . "
");
}
// Par défaut, il ne s'agit pas d'une longue connexion. Si vous avez besoin d'une longue connexion à la base de données, vous devez ajouter un paramètre à la fin : array(PDO:: ATTR_PERSISTENT => true) devient comme ceci :
$db = new PDO($dsn, $user, $pass , array(PDO::ATTR_PERSISTENT => true));

?>


★Requête de base de données :
Nous avons déjà effectué une requête ci-dessus, nous pouvons également utiliser la requête suivante :
$db->setAttribute(PDO::ATTR_CASE, PDO::CASE_UPPER); //Définir les attributs
$rs = $db->query("Select * FROM foo");
$rs-> ;setFetchMode(PDO::FETCH_ASSOC);
$result_arr = $rs->fetchAll();
print_r($result_arr);
?>


À cause de ce qui précède Utilisez la méthode setAttribute(), mettez ces deux paramètres et forcez le nom du champ à être mis en majuscule. Voici les paramètres de PDO::setAttribute() : PDO::ATTR_CASE : Forcer le nom de la colonne à devenir un format, comme détaillé ci-dessous (deuxième paramètre) :

PDO::CASE_LOWER : Forcer le nom de la colonne Le nom est en minuscules.

PDO::CASE_NATURAL : Le nom de la colonne est dans la forme originale

PDO::CASE_UPPER : Le nom de la colonne doit être obligatoirement en majuscule.

PDO::ATTR_ERRMODE : astuce d'erreur.

PDO::ERRMODE_SILENT : n'affiche pas les informations d'erreur, uniquement le code d'erreur.

PDO::ERRMODE_WARNING : affiche une erreur d'avertissement.

PDO::ERRMODE_EXCEPTION : Throw Une exception s'est produite.

PDO::ATTR_ORACLE_NULLS (valable non seulement pour ORACLE, mais aussi pour d'autres bases de données) : ) Spécifiez la valeur correspondante en php pour la valeur NULL renvoyée par la base de données.

PDO::NULL_NATURAL : inchangé.

PDO::NULL_EMPTY_STRING : la chaîne vide est convertie en NULL.

PDO::NULL_TO_STRING : NULL est converti en chaîne vide.

PDO::ATTR_STRINGIFY_FETCHES : convertit les valeurs numériques en chaînes lors de la récupération. Nécessite bool.

PDO::ATTR_STATEMENT_CLASS : définit la classe d'instructions fournie par l'utilisateur dérivée de PDOStatement. Ne peut pas être utilisée avec persistant. Instances PDO. Nécessite un tableau (string classname, array (mixed constructor_args)).

PDO::ATTR_AUTOCOMMIT (disponible dans OCI, Firebird et MySQL) : s'il faut valider automatiquement chaque instruction.

PDO : :MYSQL_ATTR_USE_BUFFERED_QUERY (disponible dans MySQL) : utilisez des requêtes mises en mémoire tampon.

$rs->setFetchMode(PDO::FETCH_ASSOC); dans l'exemple est PDOStatement::setFetchMode(), une déclaration du type de retour.
sont les suivants :
PDO::FETCH_ASSOC -- Forme de tableau associatif
PDO::FETCH_NUM -- Forme de tableau d'index numérique
PDO::FETCH_BOTH -- Les deux formes de tableau sont disponibles, ce qui manque Provincial
PDO::FETCH_OBJ - sous la forme d'un objet, similaire au précédent mysql_fetch_object()

Pour plus de déclarations de type de retour (PDOStatement::method name), voir le manuel.

★Insérer, mettre à jour, supprimer des données,

$db->exec("Delete FROM `xxxx_menu` which mid=43");


Simple Pour résumer les opérations ci-dessus :

Les opérations de requête sont principalement PDO::query(), PDO::exec(), PDO::prepare().
PDO::query() est principalement utilisé pour les opérations qui renvoient des résultats enregistrés, en particulier les opérations de sélection.
PDO::exec() est principalement utilisé pour les opérations qui ne renvoient pas de jeu de résultats, telles que Insertion, Mise à jour. , et Supprimer Pour les autres opérations, le résultat renvoyé est le nombre de colonnes affectées par l'opération en cours.
PDO::prepare() est principalement une opération de prétraitement. Vous devez utiliser $rs->execute() pour exécuter les instructions SQL dans le prétraitement. Cette méthode peut lier des paramètres et est assez puissante. simplement dans cet article. Si vous comprenez, vous pouvez vous référer au manuel et à d'autres documents.

Les principales opérations pour obtenir l'ensemble de résultats sont : PDOStatement::fetchColumn(), PDOStatement::fetch(), PDOStatement::fetchALL().
PDOStatement::fetchColumn() est un champ du premier enregistrement spécifié dans le résultat de la récupération. La valeur par défaut est le premier champ.
PDOStatement::fetch() est utilisé pour obtenir un enregistrement.
PDOStatement::fetchAll() est utilisé pour obtenir tous les enregistrements en un seul. Pour obtenir les résultats, vous pouvez définir le type de jeu de résultats requis via. PDOStatement :: setFetchMode.

Il existe deux autres opérations périphériques, l'une est PDO::lastInsertId() et PDOStatement::rowCount(). PDO::lastInsertId() renvoie la dernière opération d'insertion et le type de colonne de clé primaire est le dernier ID d'auto-incrémentation.
PDOStatement::rowCount() est principalement utilisé pour l'ensemble de résultats affecté par les opérations de suppression, d'insertion et de mise à jour de PDO::query() et PDO::prepare(). Il n'est pas valide pour PDO::exec. () et opération de sélection.

Recommandations associées :

La raison pour laquelle la méthode PDO peut empêcher l'injection dans MySQL

Framework ThinkPHP basé sur un exemple d'opération de base de données de connexion à la méthode PDO

Exemple d'opération de traitement de transaction PDO en PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Configuration du projet CakePHP Configuration du projet CakePHP Sep 10, 2024 pm 05:25 PM

Dans ce chapitre, nous comprendrons les variables d'environnement, la configuration générale, la configuration de la base de données et la configuration de la messagerie dans CakePHP.

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Date et heure de CakePHP Date et heure de CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Téléchargement de fichiers CakePHP Téléchargement de fichiers CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

Routage CakePHP Routage CakePHP Sep 10, 2024 pm 05:25 PM

Dans ce chapitre, nous allons apprendre les sujets suivants liés au routage ?

Discuter de CakePHP Discuter de CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

CakePHP créant des validateurs CakePHP créant des validateurs Sep 10, 2024 pm 05:26 PM

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

See all articles