ORM-Objektbeziehungszuordnung, O (Objekt) Objekt, ist die Entität im Projekt, genauer gesagt, es ist das Datenmodell, das auch als Persistenzklasse bezeichnet werden kann. R (Relation) relationale Daten, M (Mapping) Mapping, der Prozess der Zuordnung von Objekten zu relationalen Daten und der Zuordnung relationaler Daten zu Objekten. Ein intuitiveres Verständnis ist, dass ORM OOP-Denken verwendet, um SQL-Anweisungen zum Hinzufügen, Löschen, Ändern und Abfragen zu generieren.
ORM eignet sich im Vergleich zu PDO besser für schnelle Entwicklungsprojekte ohne das Schreiben von SQL-Anweisungen. Hier sind einige nützliche ORMs.
Medoo
Im Folgenden wird Version 1.0.2 als Beispiel verwendet.
Umgebungsanforderungen
PHP 5.1+, PHP 5.4+ empfohlen und PDO unterstützt.
Mindestens eines von MySQL, MSSQL, SQLite installiert.
So installieren Sie
Medoo unterstützt die Composer-Installation und den direkten Download.
Mit Composer installieren:
composer require catfan/Medoo composer update
Direkt herunterladen:
https://github.com/catfan/Medoo/archive/master.zip
Loslegen
Medoo vorstellen und die Datenbank konfigurieren:
<?php //使用Composer安装的这样引入 //require 'vendor/autoload.php'; // 直接下载的这样引入 require_once 'medoo.php'; // 初始化 $db = new medoo([ 'database_type' => 'mysql', 'database_name' => 'test', 'server' => 'localhost', 'username' => 'root', 'password' => '123456', 'charset' => 'utf8', //可选:端口 'port' => 3306, //可选:表前缀 'prefix' => '', // PDO驱动选项 http://www.php.net/manual/en/pdo.setattribute.php 'option' => [ PDO::ATTR_CASE => PDO::CASE_NATURAL ] ]);
Wenn es SQLite ist:
$database = new medoo([ 'database_type' => 'sqlite', 'database_file' => 'my/database/path/database.db']);
CURD
Abfrage (Lesen) :
select($table, $columns, $where) //获取所有记录 - table [string] 表名 - columns [string/array] 字段 - where (可选) [array] 查询条件get($table, $columns, $where) //仅获取一条数据select($table, $join, $columns, $where) - table [string] 表名 - join [array] 关联查询,如果没有可以忽略 - columns [string/array] 字段 - where (可选) [array] 查询条件
Beispiel:
$user = $db->select('user', '*'); //返回所有数据 $user = $db->get('user', '*'); //返回一条数据 $user = $db->select('user','*', array('name ' => 'joy')); $user = $db->select('user','name', array('age[>] ' => 20)); $user = $db->select('user',['name','age'], array('age[<=] ' => 20));
Erstellen:
insert($table, $data)
Beispiel:
$db->insert('user', array('name'=> 't3', 'age'=>22)); //返回自增id
Hinweis: Wenn die Daten Unterarrays enthalten, werden sie von serialize() serialisiert. Sie können json_encode() als JSON-Speicher verwenden.
Update:
update($table, $data, $where)
Beispiel:
$db->update('user', array('name'=> 't5'), array('id'=> 23)); //返回受影响的行数
Löschen:
delete($table, $where)
Beispiel:
$db->update('user', array('id'=> 23)); //返回受影响的行数
wobei
Aggregationsabfrage
$db->has('user', array('id'=> 23)); //记录是否存在 $db->count('user', array('id[>]'=> 23));//统计 $db->max('user', 'age', array('gender'=> 1));//最大值 $db->min('user', 'age', array('gender'=> 2)); //最小值 $db->avg('user', 'age', array('gender'=> 2)); //平均值 $db->sum('user', 'age', array('gender'=> 2)); //求和
Die oben genannten Methoden unterstützen alle den zweiten Parameter $join, bei dem es sich um eine verwandte Abfrage handelt.
Transaktionsmechanismus
$db->action(function($db) { try{ $db->insert("account", [ "name" => "foo", "email" => "bar@abc.com" ]); $db->delete("account", [ "user_id" => 2312 ]); }catch(Exception $e){ // 返回false就会回滚事务 return false; } });
Abfrage verwenden
, um SQL direkt zu verwenden.
//查询 $data = $db->query("SELECT * FROM user")->fetchAll(); print_r($data); //删除 $db->query("DELETE FROM user where name='t5' ");
PDO direkt verwenden
Medoo basiert auf PDO, sodass Sie die PDO-Instanz direkt aufrufen können.
Holen Sie sich die PDO-Instanz:
$pdo = $db->pdo;
Als nächstes können Sie alle Methoden des PDO-Objekts verwenden.
1.PDO::beginTransaction – Eine Transaktion starten
2.PDO::commit – Eine Transaktion festschreiben
3.PDO::__construct – Eine PDO-Instanz erstellen, die eine Datenbankverbindung darstellt
4.PDO::errorCode – Rufen Sie den SQLSTATE ab, der sich auf die letzte Operation des Datenbank-Handles bezieht. >7.PDO::getAttribute – Rufen Sie die Attribute einer Datenbankverbindung ab
*8.PDO::getAvailableDrivers – Gibt ein Array verfügbarer zurück Treiber (wissen Sie es einfach)
*9.PDO::inTransaction – Überprüfen Sie, ob innerhalb einer Transaktion (verstehen Sie es einfach)
10.PDO::lastInsertId – Gibt die ID oder den Sequenzwert der zuletzt eingefügten Zeile zurück
11.PDO::prepare – Erstellt eine SQL-Vorverarbeitung und gibt ein PDOStatement-Objekt zurück
12.PDO::query – wird verwendet, um Abfrage-SQL-Anweisungen auszuführen und PDOStatement-Objekte zurückzugeben
13.PDO::quote – einfache Anführungszeichen hinzufügen SQL-Strings
14.PDO::rollBack – eine Transaktion zurücksetzen
15.PDO::setAttribute – Attribut festlegen
Beispiel:
$stmt = $pdo->query('select * from user limit 2'); //返回一个PDOStatement对象 //$row = $stmt->fetch(); //从结果集中获取下一行,用于while循环 $rows = $stmt->fetchAll(); //获取所有 print_r($rows);
$pdo->beginTransaction();//开启事务处理 try{//PDO预处理以及执行语句... $pdo->commit();//提交事务 }catch(PDOException $e){ $pdo->rollBack();//事务回滚 //相关错误处理 throw $e; }
debug() gibt die endgültige SQL-Anweisung aus
Fügen Sie die debug()-Methode vor select, get, insert, update und anderen hinzu Methoden zum Drucken der SQL-Anweisung, und das Programm wird nicht weiter ausgeführt:
error() gibt die Fehlermeldung der letzten Operation zurück$user = $db->debug()->select('user', '*'); //SELECT "name","age" FROM "user" WHERE "age" <= 20
$db->select('user3', '*'); var_dump($db->error());
$db->select('user', '*'); var_dump($db->log());
$db->select('user', '*'); var_dump($db->last_query());
Für PHP PDO Einige Zusammenfassung des Verständnisses
PDO-Methode zum Implementieren des Hinzufügens, Löschens, Änderns und Abfragens von Datenbanken in PHP
php Verwenden Sie pdo, um eine Verbindung zur MSSQL-Server-Datenbankinstanz herzustellen
Das obige ist der detaillierte Inhalt vonPHP verwendet ORM für Datenbankoperationen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!