recherche

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:

Getting Started with FluentPDO

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éthode

from () 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éthodes

sont également fournies pour les instructions "Avoir", "Group By" et "Order by".

Voyons-les avec quelques exemples.

Ordre par

La méthode

orderBy () 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éthode

ayant () 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');
La méthode

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!

Déclaration
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
11 meilleurs scripts de raccourcissement d'URL PHP (gratuit et premium)11 meilleurs scripts de raccourcissement d'URL PHP (gratuit et premium)Mar 03, 2025 am 10:49 AM

Les longues URL, souvent encombrées de mots clés et de paramètres de suivi, peuvent dissuader les visiteurs. Un script de raccourcissement d'URL offre une solution, créant des liens concis idéaux pour les médias sociaux et d'autres plateformes. Ces scripts sont utiles pour les sites Web individuels

Introduction à l'API InstagramIntroduction à l'API InstagramMar 02, 2025 am 09:32 AM

À la suite de son acquisition de haut niveau par Facebook en 2012, Instagram a adopté deux ensembles d'API pour une utilisation tierce. Ce sont l'API graphique Instagram et l'API d'affichage de base Instagram. En tant que développeur créant une application qui nécessite des informations à partir d'un

Travailler avec les données de session Flash dans LaravelTravailler avec les données de session Flash dans LaravelMar 12, 2025 pm 05:08 PM

Laravel simplifie la gestion des données de session temporaires à l'aide de ses méthodes de flash intuitives. Ceci est parfait pour afficher de brefs messages, alertes ou notifications dans votre application. Les données ne persistent que pour la demande ultérieure par défaut: $ demande-

Construisez une application React avec un Laravel Back End: Partie 2, ReactConstruisez une application React avec un Laravel Back End: Partie 2, ReactMar 04, 2025 am 09:33 AM

Il s'agit de la deuxième et dernière partie de la série sur la construction d'une application React avec un back-end Laravel. Dans la première partie de la série, nous avons créé une API RESTful utilisant Laravel pour une application de liste de base sur le produit. Dans ce tutoriel, nous serons Dev

Misque de réponse HTTP simplifié dans les tests LaravelMisque de réponse HTTP simplifié dans les tests LaravelMar 12, 2025 pm 05:09 PM

Laravel fournit une syntaxe de simulation de réponse HTTP concise, simplifiant les tests d'interaction HTTP. Cette approche réduit considérablement la redondance du code tout en rendant votre simulation de test plus intuitive. L'implémentation de base fournit une variété de raccourcis de type de réponse: Utiliser illuminate \ support \ faades \ http; Http :: faux ([[ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API RESTCurl dans PHP: Comment utiliser l'extension PHP Curl dans les API RESTMar 14, 2025 am 11:42 AM

L'extension PHP Client URL (CURL) est un outil puissant pour les développeurs, permettant une interaction transparente avec des serveurs distants et des API REST. En tirant parti de Libcurl, une bibliothèque de transfert de fichiers multi-protocol très respectée, PHP Curl facilite Efficient Execu

12 meilleurs scripts de chat PHP sur Codecanyon12 meilleurs scripts de chat PHP sur CodecanyonMar 13, 2025 pm 12:08 PM

Voulez-vous fournir des solutions instantanées en temps réel aux problèmes les plus pressants de vos clients? Le chat en direct vous permet d'avoir des conversations en temps réel avec les clients et de résoudre leurs problèmes instantanément. Il vous permet de fournir un service plus rapide à votre personnalité

Annonce de l'enquête sur la situation en 2025 PHPAnnonce de l'enquête sur la situation en 2025 PHPMar 03, 2025 pm 04:20 PM

L'enquête sur le paysage PHP 2025 étudie les tendances actuelles de développement du PHP. Il explore l'utilisation du cadre, les méthodes de déploiement et les défis, visant à fournir des informations aux développeurs et aux entreprises. L'enquête prévoit la croissance de la PHP moderne versio

See all articles

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 semainesBy尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Version Mac de WebStorm

Version Mac de WebStorm

Outils de développement JavaScript utiles

SublimeText3 Linux nouvelle version

SublimeText3 Linux nouvelle version

Dernière version de SublimeText3 Linux

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Puissant environnement de développement intégré PHP

SublimeText3 version Mac

SublimeText3 version Mac

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

SublimeText3 version anglaise

SublimeText3 version anglaise

Recommandé : version Win, prend en charge les invites de code !