Erste 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:
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.
Dievon () 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
ausWenn 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 MethodeorderBy () 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 Methodehat () 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
Beifluentpdo 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');
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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

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

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen











JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Die Aufzählungsfunktion in Php8.1 verbessert die Klarheit und Type des Codes, indem benannte Konstanten definiert werden. 1) Aufzählungen können Ganzzahlen, Zeichenfolgen oder Objekte sein, die die Lesbarkeit der Code und die Type der Type verbessern. 2) Die Aufzählung basiert auf der Klasse und unterstützt objektorientierte Merkmale wie Traversal und Reflexion. 3) Die Aufzählung kann zum Vergleich und zur Zuordnung verwendet werden, um die Sicherheit der Typ zu gewährleisten. 4) Aufzählung unterstützt das Hinzufügen von Methoden zur Implementierung einer komplexen Logik. 5) Strenge Typ Überprüfung und Fehlerbehandlung können häufig auftretende Fehler vermeiden. 6) Die Aufzählung verringert den magischen Wert und verbessert die Wartbarkeit, achten Sie jedoch auf die Leistungsoptimierung.

Die Anwendung des soliden Prinzips in der PHP -Entwicklung umfasst: 1. Prinzip der Einzelverantwortung (SRP): Jede Klasse ist nur für eine Funktion verantwortlich. 2. Open and Close Principle (OCP): Änderungen werden eher durch Erweiterung als durch Modifikation erreicht. 3.. Lischs Substitutionsprinzip (LSP): Unterklassen können Basisklassen ersetzen, ohne die Programmgenauigkeit zu beeinträchtigen. 4. Schnittstellen-Isolationsprinzip (ISP): Verwenden Sie feinkörnige Schnittstellen, um Abhängigkeiten und nicht verwendete Methoden zu vermeiden. 5. Abhängigkeitsinversionsprinzip (DIP): Hoch- und niedrige Module beruhen auf der Abstraktion und werden durch Abhängigkeitsinjektion implementiert.

Die Hijacking der Sitzung kann in den folgenden Schritten erreicht werden: 1. Erhalten Sie die Sitzungs -ID, 2. Verwenden Sie die Sitzungs -ID, 3. Halten Sie die Sitzung aktiv. Zu den Methoden zur Verhinderung der Sitzung der Sitzung in PHP gehören: 1. Verwenden Sie die Funktion Session_regenerate_id (), um die Sitzungs -ID zu regenerieren. 2. Store -Sitzungsdaten über die Datenbank, 3. Stellen Sie sicher, dass alle Sitzungsdaten über HTTPS übertragen werden.

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Die RESTAPI -Designprinzipien umfassen Ressourcendefinition, URI -Design, HTTP -Methodenverbrauch, Statuscode -Nutzung, Versionskontrolle und Hassoas. 1. Ressourcen sollten durch Substantive dargestellt und in einer Hierarchie aufrechterhalten werden. 2. HTTP -Methoden sollten ihrer Semantik entsprechen, z. B. Get wird verwendet, um Ressourcen zu erhalten. 3. Der Statuscode sollte korrekt verwendet werden, z. B. 404 bedeutet, dass die Ressource nicht vorhanden ist. 4. Die Versionskontrolle kann über URI oder Header implementiert werden. 5. Hateoas startet Client -Operationen durch Links als Antwort.

In PHP wird das Ausnahmebehandlung durch den Versuch, Fang, schließlich und werfen Keywords erreicht. 1) Der Try -Block umgibt den Code, der Ausnahmen auslösen kann. 2) Der Catch -Block behandelt Ausnahmen; 3) Block stellt schließlich sicher, dass der Code immer ausgeführt wird. 4) Wurf wird verwendet, um Ausnahmen manuell zu werfen. Diese Mechanismen verbessern die Robustheit und Wartbarkeit Ihres Codes.

Die Hauptfunktion anonymer Klassen in PHP besteht darin, einmalige Objekte zu erstellen. 1. Anonyme Klassen ermöglichen es, Klassen ohne Namen direkt im Code zu definieren, was für vorübergehende Anforderungen geeignet ist. 2. Sie können Klassen erben oder Schnittstellen implementieren, um die Flexibilität zu erhöhen. 3. Achten Sie bei der Verwendung auf Leistung und Code -Lesbarkeit und vermeiden Sie es, dieselben anonymen Klassen wiederholt zu definieren.
