suchen
HeimBackend-EntwicklungPHP-TutorialErste Schritte mit fluentpdo

Verabschieden Sie sich von langweiliger SQL -Abfrage! Vereinfachen Sie die Datenbankoperationen mit fluentPdo

Sind Sie es leid, auch SQL -Abfragen zu schreiben? Besonders wenn die Zeit eng ist. Wenn Sie wie ich sind, lernen wir heute ein sehr cooles Werkzeug: fluentpdo. Wenn Sie mit dem Begriff "PDO" nicht vertraut sind, mach dir keine Sorgen. Es ist ein sehr einfaches Konzept: In der PHP -Welt steht PDO für persistentes Datenobjekt, mit dem Sie einige grundlegende Datenbankvorgänge (wie Einfügen, Aktualisierung, Löschen usw.) abstrahieren können. Es ist eine Abstraktionsebene zwischen Ihnen und der Datenbank.

Was ist das Ergebnis? Keine Notwendigkeit mehr, SQL -Abfragen zu schreiben! Dies ist möglicherweise nicht das erste solche Projekt, das Sie jemals gesehen haben: Es gibt viele ähnliche Projekte auf dem Markt, die jeweils ihre wichtigsten Funktionen haben. Das Hauptmerkmal von FluentPdo ist der leistungsstarke Join -Query -Builder.

Schlüsselpunkte

  • fluentPdo ist ein PHP SQL Query Builder, der grundlegende Datenbankoperationen abstrahiert, ohne SQL -Abfragen zu schreiben. Die wichtigste Funktion ist ein leistungsstarker Join Query Builder.
  • Die Installation von FluentPdo erfolgt über Komponist ohne zusätzliche Konfiguration. Instantieren Sie das PDO -Objekt, indem Sie es als Parameter an den Konstruktor des fluentPDO -Objekts übergeben.
  • fluentPdo bietet eine einfache und einfach zu lesende Syntax für grundlegende Auswahlvorgänge, einschließlich Methoden zum Festlegen von Tabellen, Filterergebnissen und Angabe von Vergleichsbetreibern. Außerdem können bestimmte Felder, Einstellungsgrenz- und Offset -Parameter ausgewählt werden und die Anweisungen mit und bestellen, gruppieren und bestellen.
  • fluentPdo unterstützt auch Datenvorgänge mithilfe von Betriebserlebnisklassen ein Insert-, Aktualisierungs- und Löschen. Diese Operationen erfordern die Ausführung der Ausführung () -Methode, um die Abfrage auszuführen und die Datenbank zu ändern.
  • Erweiterte Funktionen von FluentPdo enthalten den Join-Query Builder (der Code vereinfacht die Join-Abfrage) und ein integriertes Debugger-System (zum Testen und Überprüfen von Abfragen).

unser fluentpdo -Testprojekt

Erstens brauchen wir ein Beispielprojekt, um es zu tun. Lassen Sie uns darüber nachdenken ... wie wäre es mit einer einfachen Multi-User-Wunschliste?

Es wird viele Benutzer geben, und jeder Benutzer hat sein eigenes Lieblingsprodukt. Für jeden Benutzer speichern wir den Vornamen, den Nachnamen und den Registrierungsdatum. Für jeden Artikel speichern wir den Namen, die Marke, den Preis und die damit verbundene Benutzer -ID.

Ich werde eine einfache MySQL -Datenbank verwenden. Hier ist unsere Datenstruktur:

Getting Started with FluentPDO

Folgendes ist ein SQL -Dump (einschließlich einiger Dummy -Daten):

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);

Hinweis: Wie Sie sich leicht vorstellen können, ist dies kein "vollständiges" Projekt. Wir probieren nur fließendpdo aus, sodass wir keine Dinge wie Login, Registrierung oder Anwendungsstruktur abdecken.

Installation

Sie können FluentPdo mit Composer installieren und als Abhängigkeit einschließen:

"require": {
        ...
        "lichtner/fluentpdo": "dev-master"  
    }

Wenn Sie fertig sind, müssen Sie es so instanziieren:

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);

Sie müssen Ihre Verbindungsdetails in der PDO -Konstruktor -Methode angeben. Geben Sie im ersten Parameter Ihren Datenbanknamen nach dem Abschnitt dbname = ein und schreiben Sie Ihren Benutzernamen und Ihr Passwort als zweite bzw. dritte Parameter.

Sie dann das PDO -Objekt als Parameter an den Konstruktor des fluentPDO -Objekts übergeben.

Das ist es, fluentpdo braucht nichts anderes, um zu arbeiten. Keine zusätzliche Konfiguration erforderlich.

Basic Select Operation

Wir haben bereits einige virtuelle Daten. Beginnen wir mit "Hello World" von SQL Query. Eine einfache Auswahl mit einer WHERE -Klausel und der Benutzer der Primärschlüssel -ID der Benutzer als Parameter zum Abrufen der grundlegenden Informationen.

"require": {
        ...
        "lichtner/fluentpdo": "dev-master"  
    }

Hier ist nichts schwer zu verstehen. Fluentpdo hat eine gute und leicht zu lesende Syntax, daher ist es leicht zu verstehen, was wir tun.

Die

von () Methode wird verwendet, um die richtige Tabelle festzulegen. Die Methode WO () wird verwendet, um unsere Ergebnisse mit derselben Namensklausel zu filtern. Standardmäßig geben Sie in der Methode where () den Feldnamen und den Wert an. "=" ist implizit. Natürlich können Sie auch verschiedene Vergleichsoperatoren verwenden. In diesem Fall müssen Sie sie nach dem Feldnamen schreiben.

$pdo = new PDO("mysql:dbname=wishlist", "root", "password");
    $fpdo = new FluentPDO($pdo);

Die Ergebnisse erhalten ist sehr einfach: Sie werden in dem von uns gerade verwendeten $ Query -Objekt gespeichert. Sie können es mit einer für die LEACH -Schleife itererieren, wie im Beispiel gezeigt.

In diesem speziellen Fall (Durchsuchen des Elements nach Primärschlüssel -ID) können wir auch Verknüpfungen in der von () Methode () verwenden:

$user_id = 1;

    $query = $fpdo->from('users')->where('id', $user_id);

    foreach($query as $row){
        echo 'Hello, ' . $row['first_name'] . ' ' . $row['last_name'] . '!';    
    }

Lassen Sie uns etwas komplizierteres sehen als dieses.

Wählen Sie ein bestimmtes Feld

aus

Wenn Sie möchten, können Sie die Select () -Methode von () zum Auswählen verwenden. Sie müssen nur ein Array verwenden, um Fluentpdo zu mitteilen, welche Felder Sie auswählen möchten.

Dies ist ein Beispiel:

$fpdo->from('items')->where('price >', 1000);

Grenze und Offset

Einstellen der Grenz- und Offset -Parameter, um nur eine bestimmte Anzahl von Zeilen aus der Datenbank abzurufen, ist sehr einfach. Sie können Limit () und Offset () -Methoden wie diese verwenden.

$query = fpdo->from('users', $user_id);

    // 将与...相同
    $query = $fpdo->from('users')->where('id', $user_id);

Das einzige Argument für diese beiden Methoden ist eine Ganzzahl, die den erforderlichen Wert angibt (für Limit (), es ist die Anzahl der Elemente; für Offset (), es ist die Anzahl der zu überspringen zu übersprungenen Elemente).

, gruppe von und order nach

Methoden werden auch für die "Have", "Group By" und "Order By" -Beweisungen bereitgestellt.

Schauen wir sie uns mit einigen Beispielen an.

bestellen nach

Die Methode

orderBy () wird verwendet, um die Ergebnisse nach bestimmten Bedingungen zu sortieren. Lassen Sie uns ein Beispiel geben: Hier erfahren Sie, wie Sie die Ergebnisse nach Preis sortieren (von billig bis teur).

$query = $fpdo->from('users')->select(array('first_name', 'last_name'))->where('id', $user_id);

Wenn Sie die Reihenfolge umkehren möchten (das Ergebnis von den teuersten bis zum billigsten erhalten), fügen Sie einfach nach der ausgewählten Spalte "Desc" hinzu.

// 选择前十个结果...
    $query = $fpdo->from('users')->where('id', $user_id)->limit(10)->offset(0);

mit

Die Methode

hat () hat eine sehr einfache Syntax. Im folgenden Beispiel filtern wir jeden Artikel, der weniger als 2.000 US -Dollar kostet.

$query = $fpdo->from('items')->orderBy('price');

sehr einfach.

Sie können jeden gewünschten Vergleichsbetreiber verwenden.

Gruppe nach

Verwenden Sie die Gruppe GroupBy (), Sie können die Ergebnisse mit bestimmten Feldern als Bedingungen gruppieren. Hier zeigen wir die Produktmenge für jede Marke.

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);

Hinweis: Sie können einen Alias ​​für Felder wie in Classic SQL angeben.

Methode abrufen

Fetch

für foreach ist nicht der einzige Weg, um das Ergebnis zu erzielen. Was ist, wenn wir nur das erste Ergebnis aus der Sammlung abrufen möchten?

Verwenden Sie einfach die Fetch () -Methode:

"require": {
        ...
        "lichtner/fluentpdo": "dev-master"  
    }

Sie können auch eine einzelne Spalte erhalten, indem Sie ihren Namen als Parameter angeben.

$pdo = new PDO("mysql:dbname=wishlist", "root", "password");
    $fpdo = new FluentPDO($pdo);

fetchpairs

Verwenden von Fetchpairs () können Sie die Ergebnisse als assoziatives Array abrufen. Verwenden Sie die folgende Syntax:

$user_id = 1;

    $query = $fpdo->from('users')->where('id', $user_id);

    foreach($query as $row){
        echo 'Hello, ' . $row['first_name'] . ' ' . $row['last_name'] . '!';    
    }

Sie erhalten die folgende Ausgabe:

$fpdo->from('items')->where('price >', 1000);

Dies ist ein Beispiel, das eine Benutzer-Einheit-ID und einen Namensnamen verwendet.

$query = fpdo->from('users', $user_id);

    // 将与...相同
    $query = $fpdo->from('users')->where('id', $user_id);

fetchall

Die letzte but not least ist die Fetchall () -Methode.

Folgendes ist die Syntax:

$query = $fpdo->from('users')->select(array('first_name', 'last_name'))->where('id', $user_id);

Verwenden von Fetchall () haben wir die vollständige Kontrolle über das, was wir aus dem Ergebnis erhalten. Der erste Parameter $ Index ist das als Index verwendete Feld, und $ selectOnly wird verwendet, um das zu ausgewählte Feld anzugeben.

Dies ist ein Beispiel:

// 选择前十个结果...
    $query = $fpdo->from('users')->where('id', $user_id)->limit(10)->offset(0);

Hinweis: Die als Index (ID in diesem Fall) verwendete Spalte ist ebenfalls im endgültigen Array enthalten.

Okay, es ist genug an ausgewählten Operationen. Schauen wir uns andere CRUD -Operationen an.

Einfügen, Aktualisieren und Löschen

Bei

fluentpdo geht es nicht nur darum, etwas auszuwählen. Es hat auch Klassen, die Daten auf einfache Weise manipulieren.

Beginnen wir mit dem Einfügenvorgang.

einfügen
$query = $fpdo->from('items')->orderBy('price');
Die Methode

InsertInto () wird verwendet, um die für den Vorgang verwendete Tabelle anzugeben. Anschließend müssen Sie die erforderlichen Werte mit der Methode Values ​​() zuweisen (in diesem Fall werden sie im $ VAST Associativ -Array gespeichert).

Der letzte Schritt ist die methode execute (), die den Primärschlüssel des neuen Datensatzes zurückgibt.

Sie können diese Verknüpfung auch verwenden, wenn Sie möchten:

$query = $fpdo->from('items')->orderBy('price DESC');

update

Aktualisierungsmethode ist sehr ähnlich. Schauen wir uns ein Beispiel an.

$query = $fpdo->from('items')->having('price <', 2000);

Verwenden Sie die Methode set (), Sie können einen neuen Wert für die Aktualisierungsoperation angeben.

Verwenden Sie die Methode WO (), wir filtern die betroffenen Zeilen. Es gibt auch eine Abkürzung, wie bereits erwähnt.

löschen

Betrieb löschen ist einfacher. Hier ist ein kurzes Beispiel.

$query = $fpdo->from('items')->select('brand, COUNT(*) AS c')->groupBy('brand');

Wenn Sie einen Datensatz löschen möchten, der seinen Primärschlüssel kennt, können Sie die oben deletefrom () -Knortation verwenden.

Hinweis: Wie Sie aus dem Beispiel hier sehen können, müssen Sie die Methode execute () verwenden, um die Abfrage zu löschen. Wenn Sie dies nicht tun, werden Sie in der Datenbank nichts ändern. Gleiches gilt für Einfügen und Update. Denken Sie daran.

Erweiterte Funktionen

Wie ich Ihnen bereits sagte, haben diese Arten von Projekten ihre eigenen einzigartigen Funktionen. Fluentpdo ist keine Ausnahme: Wir werden zwei dieser Funktionen analysieren: den Join Query Builder und der Debugger.

Join Query Builder

ist wahrscheinlich das wichtigste einzigartige Merkmal von Fluentpdo. Der Bauherr ist sehr nützlich, wenn Sie Ihre Arbeit vereinfachen und weniger Code schreiben möchten. Mal sehen, wie man es benutzt.

Wir werden mit der "Classic" -Be -Abfrage beginnen, die mit FluentPdo geschrieben wurde.

ähnlich wie folgt:

$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: Wir verwenden die klassische Syntax in der Special LeftJoin () -Methode. Nicht schlecht.

Aber wir können es besser machen. Wenn Sie Konventionen in einer Tabellenstruktur verwenden, können Sie diesen Code verwenden:

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);

Großartig, oder? Ok, schnell ist wirklich cool ... aber was ist mit Smart?

schauen Sie hier:

"require": {
        ...
        "lichtner/fluentpdo": "dev-master"  
    }

Es wurde besser.

In der Tat versteht FluentPdo, was Sie tun möchten, und erstellt die Abfrage automatisch mithilfe von Daten, die Sie in der Methode Select () mit der Tabelle angeben.

Sie können die endgültige Build -Abfrage für das letzte Beispiel hier lesen:

$pdo = new PDO("mysql:dbname=wishlist", "root", "password");
    $fpdo = new FluentPDO($pdo);

Das sieht gut aus.

Natürlich können Sie einen Alias ​​für das Feld erstellen, wenn Sie möchten:

$user_id = 1;

    $query = $fpdo->from('users')->where('id', $user_id);

    foreach($query as $row){
        echo 'Hello, ' . $row['first_name'] . ' ' . $row['last_name'] . '!';    
    }

Debugger

fluentPdo verfügt über ein integriertes Debugger-System, mit dem Sie Abfragen testen und überprüfen können.

Es wird ein einfaches Verschlusssystem verwendet. Wenn Sie Debugging verwenden möchten, platzieren Sie diesen Code einfach, nachdem Sie den Code verbinden.

$fpdo->from('items')->where('price >', 1000);

Sie können den Verschluss so anpassen, wie Sie möchten, und denken Sie daran, das $ Basequery -Objekt als Parameter zu nehmen.

$ Basisquery -Objekt ist eine Instanz der Basisquery -Klasse.

Schlussfolgerung

fluentpdo ist ein kleines und einfaches Projekt. Es passt definitiv nicht zu jedem Projekt und kann verbessert werden - insbesondere wenn es seit sechs Monaten ruhte - aber für kleine/mittelgroße Anwendungen kann es eine gute Option sein, falls Sie keine großen Frameworks im Spiel einführen möchten . Es ist ein guter Kompromiss aufgrund einiger seiner Funktionen, wie dem Join Query Builder.

FAQs über den Einstieg mit Fluentpdo (FAQs)

Was ist fließend und warum sollte ich es verwenden?

fluentPdo ist ein PHP SQL Query Builder, der PDO verwendet. Es bietet eine einfache und benutzerfreundliche Oberfläche zum Erstellen von SQL-Abfragen, sodass Entwickler die Interaktion mit Datenbanken einfacher sind. FluentPdo ist besonders nützlich für diejenigen, die nicht daran gewöhnt sind, RAW -SQL -Abfragen zu schreiben oder den Entwicklungsprozess zu beschleunigen. Es unterstützt alle SQL -Funktionen und bietet eine sichere Möglichkeit, SQL -Injektionsangriffe zu verhindern.

Wie installiere ich Fluentpdo?

fluentPdo kann mit Composer (PHP -Abhängigkeitsmanager) installiert werden. Sie können es installieren, indem Sie den Befehl composer require envms/fluentpdo ausführen. Nach dem Ausführen dieses Befehls lädt und installiert Composer FluentPDO und seine Abhängigkeiten in Ihr Projekt.

Wie verbindet ich mit FluentPdo eine Verbindung zu einer Datenbank?

Um mit FluentPdo eine Verbindung zur Datenbank herzustellen, müssen Sie eine neue Instanz der FluentPDO -Klasse erstellen. Sie können dies tun, indem Sie eine PDO -Instanz an den fließenden Konstruktor weitergeben. Hier ist ein Beispiel:

$query = fpdo->from('users', $user_id);

    // 将与...相同
    $query = $fpdo->from('users')->where('id', $user_id);

Wie kann ich mit FluentPdo ausgewählte Abfrage ausführen?

fluentPdo bietet eine einfache Schnittstelle zur Ausführung ausgewählter Abfragen. Sie können eine Tabelle mit der Methode from angeben und eine Spalte mit der Methode select angeben. Hier ist ein Beispiel:

$query = $fpdo->from('users')->select(array('first_name', 'last_name'))->where('id', $user_id);

Wie führt ich eine Insert -Abfrage mit FluentPdo aus?

Um eine Insert -Abfrage auszuführen, können Sie die Tabelle mit der Methode insertInto angeben und den Wert mit der values -Methode angeben. Hier ist ein Beispiel:

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);

Wie führt ich eine Update -Abfrage mit FluentPdo aus?

Um eine Update -Abfrage auszuführen, können Sie die Tabelle mit der Methode update angeben, den neuen Wert mit der set -Methode angeben und die Bedingungen mit der Methode where angeben. Hier ist ein Beispiel:

"require": {
        ...
        "lichtner/fluentpdo": "dev-master"  
    }

Wie führe ich die Abfrage mit FluentPdo aus?

Um eine Löschabfrage durchzuführen, können Sie die Tabelle mit der Methode deleteFrom angeben und die Bedingungen mit der Methode where angeben. Hier ist ein Beispiel:

$pdo = new PDO("mysql:dbname=wishlist", "root", "password");
    $fpdo = new FluentPDO($pdo);

Wie kann man mit Fehlern in fluentpdo umgehen?

Wenn ein Fehler auftritt, macht fluentpdo eine Ausnahme. Sie können den Try-Catch-Block verwenden, um diese Ausnahmen zu erfassen und diese entsprechend umzugehen. Hier ist ein Beispiel:

$user_id = 1;

    $query = $fpdo->from('users')->where('id', $user_id);

    foreach($query as $row){
        echo 'Hello, ' . $row['first_name'] . ' ' . $row['last_name'] . '!';    
    }

Wie kann ich Transaktionen in fluentpdo verwenden?

FluentPdo bietet Methoden zum Starten, Verpflichten und Rollen von Transaktionen. Sie können beginTransaction, commit bzw. rollBack Methoden verwenden. Hier ist ein Beispiel:

$fpdo->from('items')->where('price >', 1000);

Wie kann ich FluentPdo verwenden, um Tabellen zu verbinden?

fluentPdo bietet eine einfache Schnittstelle zum Verbinden von Tabellen. Sie können die Methode join verwenden, um Tabellen und Bedingungen anzugeben. Hier ist ein Beispiel:

$query = fpdo->from('users', $user_id);

    // 将与...相同
    $query = $fpdo->from('users')->where('id', $user_id);

Das obige ist der detaillierte Inhalt vonErste Schritte mit fluentpdo. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Wie identifiziert PHP die Sitzung eines Benutzers?Wie identifiziert PHP die Sitzung eines Benutzers?May 01, 2025 am 12:23 AM

PhpidentifiesAsersSSessionUsingSSessionCookiesAndSessionIDs.1) WHANE Session_Start () iscalled, phpGeneratesAuniqueSessionIDStoredInacookienMamePhpSsidontonTheusers.2) thisidallowStoretrieVessionDataFromtheServer.

Was sind einige Best Practices für die Sicherung von PHP -Sitzungen?Was sind einige Best Practices für die Sicherung von PHP -Sitzungen?May 01, 2025 am 12:22 AM

Die Sicherheit von PHP -Sitzungen kann durch folgende Maßnahmen erreicht werden: 1. Verwenden Sie Session_regenerate_id (), um die Sitzungs -ID zu regenerieren, wenn sich der Benutzer anmeldet oder eine wichtige Operation ist. 2. Verschlüsseln Sie die Übertragungssitz -ID durch das HTTPS -Protokoll. A. Verwenden Sie Session_save_path (), um das sichere Verzeichnis anzugeben, um Sitzungsdaten zu speichern und Berechtigungen korrekt festzulegen.

Wo werden standardmäßig PHP -Sitzungsdateien gespeichert?Wo werden standardmäßig PHP -Sitzungsdateien gespeichert?May 01, 2025 am 12:15 AM

PhpSessionFilesArestoredinTHedRectorySpecifiedBySession.save_path, typischerweise/tmponunix-likesystemsorc: \ windows \ temponwindows

Wie rufen Sie Daten aus einer PHP -Sitzung ab?Wie rufen Sie Daten aus einer PHP -Sitzung ab?May 01, 2025 am 12:11 AM

ToretriedatafromaphpSession, startThesessionwithSession_start () und AccessvariableSthe $ _SessionArray.Fexample: 1) StartTheSession: session_start (). 2) Abgerufen: $ username = $ _ Session ['username'];

Wie können Sie Sitzungen verwenden, um einen Einkaufswagen zu implementieren?Wie können Sie Sitzungen verwenden, um einen Einkaufswagen zu implementieren?May 01, 2025 am 12:10 AM

Zu den Schritten zum Erstellen eines effizienten Einkaufswagensystems mithilfe von Sitzungen gehören: 1) Verstehen Sie die Definition und Funktion der Sitzung. Die Sitzung ist ein serverseitiger Speichermechanismus, der verwendet wird, um den Benutzerstatus über Anforderungen hinweg aufrechtzuerhalten. 2) Implementieren Sie das grundlegende Sitzungsmanagement, z. B. das Hinzufügen von Produkten in den Einkaufswagen; 3) auf die fortschrittliche Nutzung ausdehnen und das Produktmengenmanagement und die Löschung der Produktmenge unterstützen; 4) Optimieren Sie Leistung und Sicherheit, indem Sie Sitzungsdaten fortsetzen und sichere Sitzungskennungen verwenden.

Wie erstellen und verwenden Sie eine Schnittstelle in PHP?Wie erstellen und verwenden Sie eine Schnittstelle in PHP?Apr 30, 2025 pm 03:40 PM

Der Artikel erläutert, wie Schnittstellen in PHP erstellt, implementiert und verwendet werden und sich auf ihre Vorteile für die Organisation von Code und die Wartbarkeit konzentriert.

Was ist der Unterschied zwischen Crypt () und Passage_hash ()?Was ist der Unterschied zwischen Crypt () und Passage_hash ()?Apr 30, 2025 pm 03:39 PM

In dem Artikel werden die Unterschiede zwischen CryPT () und Passage_hash () in PHP für Passwort -Hashing erörtert und sich auf ihre Implementierung, Sicherheit und Eignung für moderne Webanwendungen konzentriert.

Wie können Sie Cross-Site Scripting (XSS) in PHP verhindern?Wie können Sie Cross-Site Scripting (XSS) in PHP verhindern?Apr 30, 2025 pm 03:38 PM

In Artikel werden in PHP durch Eingabevalidierung, Ausgabecodierung und Verwendung von Tools wie OWASP ESAPI und HTML-Reinigungsmittel die Verhinderung des Cross-Site-Skripts (XSS) erläutert.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

mPDF

mPDF

mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

Sicherer Prüfungsbrowser

Sicherer Prüfungsbrowser

Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.