Le mappage relationnel d'objet ORM, l'objet O (Object), est l'entité du projet, plus précisément, c'est le modèle de données, qui peut également être considéré comme la classe de persistance. Données relationnelles R (Relation), mappage M (Mapping), processus de mappage d'objets à des données relationnelles et de mappage de données relationnelles à des objets. Une compréhension plus intuitive est que ORM utilise la pensée POO pour générer des instructions SQL d'ajout, de suppression, de modification et d'interrogation.
Par rapport au PDO, ORM est plus adapté aux projets de développement rapide sans écrire d'instructions SQL. Voici quelques ORM utiles.
Medoo
Ce qui suit utilise la version 1.0.2 comme exemple.
Exigences en matière d'environnement
PHP 5.1+, PHP 5.4+ recommandé et PDO pris en charge.
Au moins un des MySQL, MSSQL, SQLite installé.
Comment installer
Medoo prend en charge l'installation et le téléchargement direct de Composer.
Installer à l'aide de Composer :
composer require catfan/Medoo composer update
Télécharger directement :
https://github.com/catfan/Medoo/archive/master.zip
Commencer
Présentez Medoo et configurez la base de données :
<?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 ] ]);
Si c'est SQLite :
$database = new medoo([ 'database_type' => 'sqlite', 'database_file' => 'my/database/path/database.db']);
CURD
Requête (Lire) :
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] 查询条件
Exemple :
$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));
Créer :
insert($table, $data)
Exemple :
$db->insert('user', array('name'=> 't3', 'age'=>22)); //返回自增id
Remarque : si les données contiennent des sous-tableaux, elles seront sérialisées par serialize(). Vous pouvez utiliser json_encode() comme stockage JSON.
Mise à jour :
<🎜. >update($table, $data, $where)
$db->update('user', array('name'=> 't5'), array('id'=> 23)); //返回受影响的行数
Supprimer :
delete($table, $where)
$db->update('user', array('id'=> 23)); //返回受影响的行数
Requête d'agrégation
$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)); //求和
Mécanisme de transaction
$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; } });
Utilisez la requête
pour utiliser SQL directement.//查询 $data = $db->query("SELECT * FROM user")->fetchAll(); print_r($data); //删除 $db->query("DELETE FROM user where name='t5' ");
Utiliser PDO directement
Medoo est basé sur PDO, vous pouvez donc appeler directement l'instance PDO. Récupérez l'instance PDO :$pdo = $db->pdo;
2.PDO::commit — Valider une transaction
3.PDO::__construct — Créer une instance PDO représentant une connexion à une base de données
4.PDO::errorCode — Récupère le SQLSTATE lié à la dernière opération du handle de base de données >7.PDO::getAttribute — Récupère les attributs d'une connexion à la base de données
*8.PDO::getAvailableDrivers — Renvoie un tableau des pilotes disponibles drivers (sachez-le simplement)
*9.PDO::inTransaction — Vérifiez si dans une transaction (comprenez-le simplement)
10.PDO::lastInsertId — Renvoie l'ID ou la valeur de séquence de la dernière ligne insérée
11.PDO::prepare — Crée un prétraitement SQL et renvoie un objet PDOStatement
12.PDO::query — utilisé pour exécuter des instructions SQL de requête et renvoyer des objets PDOStatement
13.PDO::quote — ajouter des guillemets simples à chaînes SQL
14.PDO::rollBack — annuler une transaction
15.PDO::setAttribute — Définir l'attribut
Exemple :
transaction pdo :
$stmt = $pdo->query('select * from user limit 2'); //返回一个PDOStatement对象 //$row = $stmt->fetch(); //从结果集中获取下一行,用于while循环 $rows = $stmt->fetchAll(); //获取所有 print_r($rows);
Utiliser DEBUG
$pdo->beginTransaction();//开启事务处理 try{//PDO预处理以及执行语句... $pdo->commit();//提交事务 }catch(PDOException $e){ $pdo->rollBack();//事务回滚 //相关错误处理 throw $e; }
error() renvoie le message d'erreur de la dernière opération
$user = $db->debug()->select('user', '*'); //SELECT "name","age" FROM "user" WHERE "age" <= 20
log() renvoie tout Les instructions de requête SQL et n'affectent pas l'exécution normale de la requête
$db->select('user3', '*'); var_dump($db->error());
last_query() et log() sont similaires, mais renvoient uniquement la dernière instruction de requête SQL, ce qui n'affecte pas l'exécution normale de la requête
$db->select('user', '*'); var_dump($db->log());
$db->select('user', '*'); var_dump($db->last_query());
Pour PHP PDO Un résumé de la compréhensionMéthode PDO pour implémenter l'ajout, la suppression, la modification et la requête de base de données en phpphp Utilisez pdo pour vous connecter à l'instance de base de données du serveur mssql
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!