Commencer avec FluentPdo
Dites au revoir à la requête SQL ennuyeuse! Simplifiez les opérations de base de données avec FluentPdo
Êtes-vous fatigué d'écrire également des requêtes SQL? Surtout quand le temps est serré. Si vous êtes comme moi, nous apprendrons aujourd'hui un outil très cool: FluentPdo. Si vous n'êtes pas familier avec le terme "APD", ne vous inquiétez pas. C'est un concept très simple: dans le monde PHP, PDO signifie un objet de données persistant, qui vous aide à résumer certaines opérations de base de données de base (telles que l'insertion, la mise à jour, la suppression, etc.). Il s'agit d'une couche d'abstraction entre vous et la base de données.
quel est le résultat? Plus besoin d'écrire des requêtes SQL! Ce n'est peut-être pas le premier projet de ce type que vous avez jamais vu: il existe de nombreux projets similaires sur le marché, chacun avec ses caractéristiques clés. La caractéristique clé de FluentPdo est son puissant constructeur de requête de jointure.
points clés
- FluentPdo est un générateur de requête SQL PHP qui résume les opérations de base de données de base sans écrire des requêtes SQL. Sa caractéristique clé est un puissant constructeur de requête de jointure.
- L'installation de FluentPDO est effectuée via le compositeur sans aucune configuration supplémentaire. Instanciez l'objet PDO en le faisant passer en tant que paramètre au constructeur de l'objet FluentPDO.
- FLUENTPDO fournit une syntaxe simple et facile à lire pour les opérations de base, y compris des méthodes pour définir des tables, filtrer les résultats et spécifier les opérateurs de comparaison. Il permet également de sélectionner des champs spécifiques, de régler les paramètres de limite et de décalage, et d'utiliser les instructions ayant, groupe BY et Order By.
- FLUENTPDO prend également en charge les opérations de données à l'aide des classes d'insertion, de mise à jour et de suppression de l'opération. Ces opérations nécessitent la méthode EXECUTE () pour exécuter la requête et modifier la base de données.
- Les fonctionnalités avancées de FluentPDO incluent le générateur de requête de jointure (le code simplifie la requête de jointure) et un système de débogueur intégré (pour tester et vérifier les requêtes).
Notre projet de test FluentPDO
Tout d'abord, nous avons besoin d'un exemple de projet pour le faire. Pensons-y ... que diriez-vous d'une simple liste de souhaits multi-utilisateurs?
Il y aura de nombreux utilisateurs et chaque utilisateur a son propre produit préféré. Pour chaque utilisateur, nous stockons son prénom, son nom de famille et sa date d'enregistrement. Pour chaque article, nous stockons son nom, sa marque, son prix et son ID utilisateur connexe.
J'utiliserai une simple base de données MySQL. Voici notre structure de données:
Ce qui suit est un vidage SQL (y compris certaines données factices):
CREATE TABLE IF NOT EXISTS items ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(100) NOT NULL, brand varchar(100) NOT NULL, price decimal(10,2) NOT NULL, user_id int(10) unsigned NOT NULL, PRIMARY KEY (id), KEY user_id (user_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ; INSERT INTO items (id, name, brand, price, user_id) VALUES (1, 'Last Awesome Phone', 'Awesome Brand', '550.00', 1), (2, 'Last Awesome TV', 'Awesome Brand', '1200.00', 1), (3, 'Fantastic E-Car', 'E-Cars Inc.', '80000.00', 2), (4, 'Fantastic E-Bike', 'E-Bikes Co. Ltd.', '16000.00', 2); CREATE TABLE IF NOT EXISTS users ( id int(10) unsigned NOT NULL AUTO_INCREMENT, first_name varchar(100) NOT NULL, last_name varchar(100) NOT NULL, signup_date datetime NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3; INSERT INTO users (id, first_name, last_name, signup_date) VALUES (1, 'Francesco', 'Malatesta', '2014-06-29 13:00:00'), (2, 'John', 'Foo Bar', '2014-06-20 11:16:39'); ALTER TABLE items ADD CONSTRAINT items_ibfk_1 FOREIGN KEY (user_id) REFERENCES users (id);
Remarque: Comme vous pouvez facilement l'imaginer, ce n'est pas un projet "complet". Nous essayons simplement FluentPDO, donc nous ne couvrions pas des choses comme la connexion, l'enregistrement ou la structure d'application.
Installation
Vous pouvez installer FluentPDO à l'aide de composer et l'inclure comme dépendance:
"require": { ... "lichtner/fluentpdo": "dev-master" }
Lorsque vous avez terminé, vous devez l'instancier comme ceci:
CREATE TABLE IF NOT EXISTS items ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(100) NOT NULL, brand varchar(100) NOT NULL, price decimal(10,2) NOT NULL, user_id int(10) unsigned NOT NULL, PRIMARY KEY (id), KEY user_id (user_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ; INSERT INTO items (id, name, brand, price, user_id) VALUES (1, 'Last Awesome Phone', 'Awesome Brand', '550.00', 1), (2, 'Last Awesome TV', 'Awesome Brand', '1200.00', 1), (3, 'Fantastic E-Car', 'E-Cars Inc.', '80000.00', 2), (4, 'Fantastic E-Bike', 'E-Bikes Co. Ltd.', '16000.00', 2); CREATE TABLE IF NOT EXISTS users ( id int(10) unsigned NOT NULL AUTO_INCREMENT, first_name varchar(100) NOT NULL, last_name varchar(100) NOT NULL, signup_date datetime NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3; INSERT INTO users (id, first_name, last_name, signup_date) VALUES (1, 'Francesco', 'Malatesta', '2014-06-29 13:00:00'), (2, 'John', 'Foo Bar', '2014-06-20 11:16:39'); ALTER TABLE items ADD CONSTRAINT items_ibfk_1 FOREIGN KEY (user_id) REFERENCES users (id);
Vous devez spécifier vos détails de connexion dans la méthode du constructeur APD. Dans le premier paramètre, tapez votre nom de base de données après la section DBNAME = et écrivez respectivement votre nom d'utilisateur et votre mot de passe comme deuxième et troisième paramètres.
Vous passez ensuite l'objet PDO en tant que paramètre au constructeur de l'objet FluentPDO.
C'est tout, FluentPdo n'a besoin de rien d'autre pour travailler. Aucune configuration supplémentaire requise.
Opération de sélection de base
Nous avons déjà des données virtuelles. Commençons par "Hello World" de SQL Query. Une simple sélection avec une clause Where et l'ID de clé primaire de l'utilisateur comme paramètre pour récupérer les informations de base.
"require": { ... "lichtner/fluentpdo": "dev-master" }
Rien n'est difficile à comprendre ici. FluentPdo a une bonne syntaxe facile à lire, il est donc facile de comprendre ce que nous faisons.
La méthodefrom () est utilisée pour définir la bonne table. La méthode où () est utilisée pour filtrer nos résultats avec la même clause de nom. Par défaut, dans la méthode WHERE (), vous simplement spécifiez le nom et la valeur du champ. "=" est implicite. Bien sûr, vous pouvez également utiliser différents opérateurs de comparaison. Dans ce cas, vous devez les écrire après le nom du champ.
$pdo = new PDO("mysql:dbname=wishlist", "root", "password"); $fpdo = new FluentPDO($pdo);
Obtenir les résultats est très facile: ils sont stockés dans l'objet $ Query que nous venons d'utiliser. Vous pouvez l'alléter dessus à l'aide d'une boucle FOREAK comme indiqué dans l'exemple.
Dans ce cas spécifique (rechercher l'élément par ID de clé primaire), nous pouvons également utiliser les raccourcis dans la méthode From ():
$user_id = 1; $query = $fpdo->from('users')->where('id', $user_id); foreach($query as $row){ echo 'Hello, ' . $row['first_name'] . ' ' . $row['last_name'] . '!'; }
Voyons quelque chose de plus compliqué que cela.
Sélectionnez un champ spécifique
Si vous le souhaitez, vous pouvez utiliser la méthode SELECT () après () pour sélectionner. Il vous suffit d'utiliser un tableau pour indiquer à FluentPDO quels champs vous souhaitez sélectionner.
Ceci est un exemple:
$fpdo->from('items')->where('price >', 1000);
limite et décalage
La définition des paramètres de limite et de décalage pour récupérer uniquement un certain nombre de lignes de la base de données est très facile. Vous pouvez utiliser des méthodes Limit () et Offset () comme celle-ci.
$query = fpdo->from('users', $user_id); // 将与...相同 $query = $fpdo->from('users')->where('id', $user_id);
Le seul argument de ces deux méthodes est un entier qui spécifie la valeur requise (pour limite (), c'est le nombre d'éléments; pour offset (), c'est le nombre d'éléments à ignorer).
Avoir, groupe par et ordre par
Des méthodessont également fournies pour les instructions "Avoir", "Group By" et "Order by".
Voyons-les avec quelques exemples.
Ordre par
La méthodeorderBy () est utilisée pour trier les résultats en fonction de conditions spécifiques. Donnons un exemple: voici comment trier les résultats par prix (de bon marché à coûteux).
$query = $fpdo->from('users')->select(array('first_name', 'last_name'))->where('id', $user_id);
Si vous souhaitez inverser la commande (obtenez le résultat du plus cher au moins cher), ajoutez simplement "DESC" après la colonne sélectionnée.
// 选择前十个结果... $query = $fpdo->from('users')->where('id', $user_id)->limit(10)->offset(0);
ayant
La méthodeayant () a une syntaxe très simple. Dans l'exemple ci-dessous, nous filtrons chaque article qui coûte moins de 2 000 $.
$query = $fpdo->from('items')->orderBy('price');
très simple.
Vous pouvez utiliser n'importe quel opérateur de comparaison souhaité.
Groupe par
Utiliser la méthode groupBy (), vous pouvez regrouper les résultats en utilisant des champs spécifiques comme conditions. Ici, nous affichons la quantité de produits pour chaque marque.
CREATE TABLE IF NOT EXISTS items ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(100) NOT NULL, brand varchar(100) NOT NULL, price decimal(10,2) NOT NULL, user_id int(10) unsigned NOT NULL, PRIMARY KEY (id), KEY user_id (user_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ; INSERT INTO items (id, name, brand, price, user_id) VALUES (1, 'Last Awesome Phone', 'Awesome Brand', '550.00', 1), (2, 'Last Awesome TV', 'Awesome Brand', '1200.00', 1), (3, 'Fantastic E-Car', 'E-Cars Inc.', '80000.00', 2), (4, 'Fantastic E-Bike', 'E-Bikes Co. Ltd.', '16000.00', 2); CREATE TABLE IF NOT EXISTS users ( id int(10) unsigned NOT NULL AUTO_INCREMENT, first_name varchar(100) NOT NULL, last_name varchar(100) NOT NULL, signup_date datetime NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3; INSERT INTO users (id, first_name, last_name, signup_date) VALUES (1, 'Francesco', 'Malatesta', '2014-06-29 13:00:00'), (2, 'John', 'Foo Bar', '2014-06-20 11:16:39'); ALTER TABLE items ADD CONSTRAINT items_ibfk_1 FOREIGN KEY (user_id) REFERENCES users (id);
Remarque: vous pouvez spécifier un alias pour des champs comme dans SQL classique.
Obtenir la méthode
Fetch
L'utilisation de foreach n'est pas le seul moyen d'obtenir le résultat. Et si nous voulons juste récupérer le premier résultat de la collection?
Utilisez simplement la méthode fetch ():
"require": { ... "lichtner/fluentpdo": "dev-master" }
Vous pouvez également obtenir une seule colonne en spécifiant son nom en tant que paramètre.
$pdo = new PDO("mysql:dbname=wishlist", "root", "password"); $fpdo = new FluentPDO($pdo);
fetchpairs
En utilisant fetchPairs (), vous pouvez récupérer les résultats en tant que tableau associatif. Utilisez la syntaxe suivante:
$user_id = 1; $query = $fpdo->from('users')->where('id', $user_id); foreach($query as $row){ echo 'Hello, ' . $row['first_name'] . ' ' . $row['last_name'] . '!'; }
vous obtiendrez la sortie suivante:
$fpdo->from('items')->where('price >', 1000);
Ceci est un exemple utilisant un ID et un nom Utilising Unique.
$query = fpdo->from('users', $user_id); // 将与...相同 $query = $fpdo->from('users')->where('id', $user_id);
fetchall
Le dernier mais non le moindre est la méthode fetchall ().
Ce qui suit est la syntaxe:
$query = $fpdo->from('users')->select(array('first_name', 'last_name'))->where('id', $user_id);
En utilisant fetchall (), nous avons un contrôle complet sur ce que nous obtenons du résultat. Le premier paramètre $ index est le champ utilisé comme index, et $ SelectOlly est utilisé pour spécifier le champ à sélectionner.
Ceci est un exemple:
// 选择前十个结果... $query = $fpdo->from('users')->where('id', $user_id)->limit(10)->offset(0);
Remarque: La colonne utilisée comme index (ID dans ce cas) est également incluse dans le tableau final.
D'accord, il suffit de sélectionner des opérations. Jetons un coup d'œil aux autres opérations CRUD.
insérer, mettre à jour et supprimer
FluentPdo ne consiste pas seulement à choisir quelque chose. Il dispose également de classes qui manipulent les données de manière simple.
Commençons par l'opération d'insertion.
INSERT
$query = $fpdo->from('items')->orderBy('price');
insertinto () est utilisée pour spécifier le tableau à utiliser pour l'opération. Vous devez ensuite attribuer les valeurs requises en utilisant la méthode VALEUR () (dans ce cas, elles sont stockées dans le tableau Associative $ VALEUR).
La dernière étape sera la méthode Execute (), qui renverra la clé principale du nouvel enregistrement.
Vous pouvez également utiliser ce raccourci si vous le souhaitez:
$query = $fpdo->from('items')->orderBy('price DESC');
Mise à jour
La méthode de mise à jour est très similaire. Regardons un exemple.
$query = $fpdo->from('items')->having('price <', 2000);
Utilisez la méthode set (), vous pouvez spécifier une nouvelle valeur pour l'opération de mise à jour.
Utilisez la méthode où (), nous filtrons les lignes affectées. Il y a aussi un raccourci, comme mentionné précédemment.
supprimer
Supprimer l'opération est plus facile. Voici un exemple rapide.
$query = $fpdo->from('items')->select('brand, COUNT(*) AS c')->groupBy('brand');
Si vous souhaitez supprimer un enregistrement qui connaît sa clé principale, vous pouvez utiliser le raccourci DeleteFrom () ci-dessus.
Remarque: Comme vous pouvez le voir dans l'exemple ici, vous devez utiliser la méthode Execute () pour exécuter la requête de suppression. Si vous ne faites pas cela, vous ne changerez rien dans la base de données. Il en va de même pour l'insert et la mise à jour. Gardez cela à l'esprit.
fonctionnalités avancées
Comme je vous l'ai déjà dit, ces types de projets ont leurs propres fonctionnalités uniques. FluentPdo ne fait pas exception: nous analyserons deux de ces fonctionnalités: le générateur de requête de jointure et le débogueur.
Rejoignez le générateur de requête
est probablement la caractéristique unique la plus importante de FluentPdo. Le constructeur est très utile si vous souhaitez simplifier votre travail et écrire moins de code. Voyons comment l'utiliser.
Nous allons commencer par la requête de jointure "classique" écrite à l'aide de FluentPdo.
similaire à ceci:
$query = $fpdo->from('users'); $row = $query->fetch(); var_dump($row); // 将输出: // array(4) { ["id"]=> string(1) "1" ["first_name"]=> string(9) "Francesco" ["last_name"]=> string(9) "Malatesta" ["signup_date"]=> string(19) "2014-06-29 13:00:00" }
OK: nous utilisons la syntaxe classique dans la méthode spéciale de gauche (). pas mal.
mais nous pouvons faire mieux. Si vous utilisez des conventions dans une structure de table, vous pouvez utiliser ce code:
CREATE TABLE IF NOT EXISTS items ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(100) NOT NULL, brand varchar(100) NOT NULL, price decimal(10,2) NOT NULL, user_id int(10) unsigned NOT NULL, PRIMARY KEY (id), KEY user_id (user_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ; INSERT INTO items (id, name, brand, price, user_id) VALUES (1, 'Last Awesome Phone', 'Awesome Brand', '550.00', 1), (2, 'Last Awesome TV', 'Awesome Brand', '1200.00', 1), (3, 'Fantastic E-Car', 'E-Cars Inc.', '80000.00', 2), (4, 'Fantastic E-Bike', 'E-Bikes Co. Ltd.', '16000.00', 2); CREATE TABLE IF NOT EXISTS users ( id int(10) unsigned NOT NULL AUTO_INCREMENT, first_name varchar(100) NOT NULL, last_name varchar(100) NOT NULL, signup_date datetime NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3; INSERT INTO users (id, first_name, last_name, signup_date) VALUES (1, 'Francesco', 'Malatesta', '2014-06-29 13:00:00'), (2, 'John', 'Foo Bar', '2014-06-20 11:16:39'); ALTER TABLE items ADD CONSTRAINT items_ibfk_1 FOREIGN KEY (user_id) REFERENCES users (id);
génial, non? Ok, Fast est vraiment cool… mais qu'en est-il intelligent?
Regardez ici:
"require": { ... "lichtner/fluentpdo": "dev-master" }
ça s'est amélioré.
En fait, FluentPdo comprend ce que vous voulez faire et construit automatiquement la requête en utilisant les données que vous fournissez dans la méthode SELECT () avec la chaîne de format Table.FieldName.
Vous pouvez lire la requête de construction finale pour le dernier exemple ici:
$pdo = new PDO("mysql:dbname=wishlist", "root", "password"); $fpdo = new FluentPDO($pdo);
Cela a l'air bien.
Bien sûr, vous pouvez créer un alias pour le champ si vous voulez:
$user_id = 1; $query = $fpdo->from('users')->where('id', $user_id); foreach($query as $row){ echo 'Hello, ' . $row['first_name'] . ' ' . $row['last_name'] . '!'; }
débogueur
FLUENTPDO est livré avec un système de débogueur intégré que vous pouvez utiliser pour tester les requêtes et les vérifier.
Il utilise un système de fermeture simple. Si vous souhaitez utiliser le débogage, placez simplement ce code après avoir connecté le code.
$fpdo->from('items')->where('price >', 1000);
Vous pouvez personnaliser la fermeture comme vous le souhaitez, n'oubliez pas de prendre l'objet $ BaseQuery en tant que paramètre.
$ L'objet BaseQuery est une instance de la classe BaseQuery.
Conclusion
FluentPdo est un projet petit et simple. Il ne correspond certainement pas à tous les projets et peut être amélioré - surtout s'il est en sommeil depuis six mois - mais pour les applications de petite / moyenne / moyenne . C'est un bon compromis en raison de certaines de ses fonctionnalités, telles que le générateur de requête de jointure.
FAQ sur le démarrage avec FluentPdo (FAQ)
Qu'est-ce que FluentPdo et pourquoi devrais-je l'utiliser?
FLUENTPDO est un constructeur de requête SQL PHP qui utilise l'APD. Il fournit une interface simple et facile à utiliser pour créer des requêtes SQL, ce qui facilite l'interaction pour les développeurs avec les bases de données. FluentPdo est particulièrement utile pour ceux qui ne sont pas habitués à écrire des requêtes SQL brutes ou qui souhaitent accélérer le processus de développement. Il prend en charge toutes les fonctions SQL et fournit un moyen sûr de prévenir les attaques d'injection SQL.
Comment installer FluentPdo?
FLUENTPDO peut être installé à l'aide de Composer (PHP Dependency Manager). Vous pouvez l'installer en exécutant la commande composer require envms/fluentpdo
. Après avoir exécuté cette commande, Composer téléchargera et installera FluentPdo et ses dépendances dans votre projet.
Comment se connecter à une base de données à l'aide de FluentPDO?
Pour vous connecter à la base de données à l'aide de FluentPDO, vous devez créer une nouvelle instance de la classe FLUENTPDO. Vous pouvez le faire en passant une instance APD au constructeur FluentPDO. Voici un exemple:
$query = fpdo->from('users', $user_id); // 将与...相同 $query = $fpdo->from('users')->where('id', $user_id);
Comment exécuter la requête sélectionnée à l'aide de FluentPDO?
FLUENTPDO fournit une interface simple pour effectuer des requêtes sélectionnées. Vous pouvez spécifier un tableau à l'aide de la méthode from
et spécifier une colonne à l'aide de la méthode select
. Voici un exemple:
$query = $fpdo->from('users')->select(array('first_name', 'last_name'))->where('id', $user_id);
Comment exécuter des requêtes d'insert à l'aide de FluentPDO?
Pour effectuer une requête d'insertion, vous pouvez spécifier le tableau à l'aide de la méthode insertInto
et spécifier la valeur à l'aide de la méthode values
. Voici un exemple:
CREATE TABLE IF NOT EXISTS items ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(100) NOT NULL, brand varchar(100) NOT NULL, price decimal(10,2) NOT NULL, user_id int(10) unsigned NOT NULL, PRIMARY KEY (id), KEY user_id (user_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ; INSERT INTO items (id, name, brand, price, user_id) VALUES (1, 'Last Awesome Phone', 'Awesome Brand', '550.00', 1), (2, 'Last Awesome TV', 'Awesome Brand', '1200.00', 1), (3, 'Fantastic E-Car', 'E-Cars Inc.', '80000.00', 2), (4, 'Fantastic E-Bike', 'E-Bikes Co. Ltd.', '16000.00', 2); CREATE TABLE IF NOT EXISTS users ( id int(10) unsigned NOT NULL AUTO_INCREMENT, first_name varchar(100) NOT NULL, last_name varchar(100) NOT NULL, signup_date datetime NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3; INSERT INTO users (id, first_name, last_name, signup_date) VALUES (1, 'Francesco', 'Malatesta', '2014-06-29 13:00:00'), (2, 'John', 'Foo Bar', '2014-06-20 11:16:39'); ALTER TABLE items ADD CONSTRAINT items_ibfk_1 FOREIGN KEY (user_id) REFERENCES users (id);
Comment exécuter la requête de mise à jour à l'aide de FluentPDO?
Pour effectuer une requête de mise à jour, vous pouvez spécifier le tableau à l'aide de la méthode update
, spécifier la nouvelle valeur à l'aide de la méthode set
et spécifier les conditions à l'aide de la méthode where
. Voici un exemple:
"require": { ... "lichtner/fluentpdo": "dev-master" }
Comment effectuer des requêtes de suppression à l'aide de FluentPdo?
Pour effectuer une requête de suppression, vous pouvez spécifier le tableau à l'aide de la méthode deleteFrom
et spécifier les conditions à l'aide de la méthode where
. Voici un exemple:
$pdo = new PDO("mysql:dbname=wishlist", "root", "password"); $fpdo = new FluentPDO($pdo);
Comment gérer les erreurs dans FluentPdo?
Lorsqu'une erreur se produit, FluentPdo lancera une exception. Vous pouvez utiliser le bloc d'essai pour assister à ces exceptions et les gérer en conséquence. Voici un exemple:
$user_id = 1; $query = $fpdo->from('users')->where('id', $user_id); foreach($query as $row){ echo 'Hello, ' . $row['first_name'] . ' ' . $row['last_name'] . '!'; }
Comment utiliser les transactions dans FluentPDO?
FLUENTPDO fournit des méthodes pour démarrer, engager et faire reculer les transactions. Vous pouvez utiliser des méthodes beginTransaction
, commit
et rollBack
respectivement. Voici un exemple:
$fpdo->from('items')->where('price >', 1000);
Comment utiliser FluentPDO pour rejoindre les tables?
FluentPdo fournit une interface simple pour connecter les tables. Vous pouvez utiliser la méthode join
pour spécifier des tables et des conditions. Voici un exemple:
$query = fpdo->from('users', $user_id); // 将与...相同 $query = $fpdo->from('users')->where('id', $user_id);
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds











Dans PHP, Password_Hash et Password_verify Les fonctions doivent être utilisées pour implémenter le hachage de mot de passe sécurisé, et MD5 ou SHA1 ne doit pas être utilisé. 1) Password_hash génère un hachage contenant des valeurs de sel pour améliorer la sécurité. 2) Password_verify Vérifiez le mot de passe et assurez-vous la sécurité en comparant les valeurs de hachage. 3) MD5 et SHA1 sont vulnérables et manquent de valeurs de sel, et ne conviennent pas à la sécurité de mot de passe moderne.

PHP est un langage de script largement utilisé du côté du serveur, particulièrement adapté au développement Web. 1.Php peut intégrer HTML, traiter les demandes et réponses HTTP et prend en charge une variété de bases de données. 2.PHP est utilisé pour générer du contenu Web dynamique, des données de formulaire de traitement, des bases de données d'accès, etc., avec un support communautaire solide et des ressources open source. 3. PHP est une langue interprétée, et le processus d'exécution comprend l'analyse lexicale, l'analyse grammaticale, la compilation et l'exécution. 4.PHP peut être combiné avec MySQL pour les applications avancées telles que les systèmes d'enregistrement des utilisateurs. 5. Lors du débogage de PHP, vous pouvez utiliser des fonctions telles que error_reportting () et var_dump (). 6. Optimiser le code PHP pour utiliser les mécanismes de mise en cache, optimiser les requêtes de base de données et utiliser des fonctions intégrées. 7

PHP et Python ont chacun leurs propres avantages et choisissent en fonction des exigences du projet. 1.Php convient au développement Web, en particulier pour le développement rapide et la maintenance des sites Web. 2. Python convient à la science des données, à l'apprentissage automatique et à l'intelligence artificielle, avec syntaxe concise et adaptée aux débutants.

PHP est largement utilisé dans le commerce électronique, les systèmes de gestion de contenu et le développement d'API. 1) E-commerce: Utilisé pour la fonction de panier et le traitement des paiements. 2) Système de gestion du contenu: utilisé pour la génération de contenu dynamique et la gestion des utilisateurs. 3) Développement des API: Utilisé pour le développement de l'API RESTful et la sécurité de l'API. Grâce à l'optimisation des performances et aux meilleures pratiques, l'efficacité et la maintenabilité des applications PHP sont améliorées.

Le type PHP invite à améliorer la qualité et la lisibilité du code. 1) Conseils de type scalaire: Depuis PHP7.0, les types de données de base sont autorisés à être spécifiés dans les paramètres de fonction, tels que INT, Float, etc. 2) Invite de type de retour: Assurez la cohérence du type de valeur de retour de fonction. 3) Invite de type d'union: Depuis PHP8.0, plusieurs types peuvent être spécifiés dans les paramètres de fonction ou les valeurs de retour. 4) Invite de type nullable: permet d'inclure des valeurs nulles et de gérer les fonctions qui peuvent renvoyer les valeurs nulles.

PHP est toujours dynamique et occupe toujours une position importante dans le domaine de la programmation moderne. 1) La simplicité de PHP et le soutien communautaire puissant le rendent largement utilisé dans le développement Web; 2) sa flexibilité et sa stabilité le rendent exceptionnelle dans la gestion des formulaires Web, des opérations de base de données et du traitement de fichiers; 3) PHP évolue et optimise constamment, adapté aux débutants et aux développeurs expérimentés.

PHP convient au développement Web, en particulier dans le développement rapide et le traitement du contenu dynamique, mais n'est pas bon dans les applications de la science des données et de l'entreprise. Par rapport à Python, PHP présente plus d'avantages dans le développement Web, mais n'est pas aussi bon que Python dans le domaine de la science des données; Par rapport à Java, PHP fonctionne moins bien dans les applications au niveau de l'entreprise, mais est plus flexible dans le développement Web; Par rapport à JavaScript, PHP est plus concis dans le développement back-end, mais n'est pas aussi bon que JavaScript dans le développement frontal.

PHP est principalement la programmation procédurale, mais prend également en charge la programmation orientée objet (POO); Python prend en charge une variété de paradigmes, y compris la POO, la programmation fonctionnelle et procédurale. PHP convient au développement Web, et Python convient à une variété d'applications telles que l'analyse des données et l'apprentissage automatique.
