Maison > développement back-end > tutoriel php > Opérations associées sur la base de données ThinkPHP5

Opérations associées sur la base de données ThinkPHP5

jacklove
Libérer: 2023-04-01 09:22:01
original
1612 Les gens l'ont consulté

ThinkPHP5-Database Operation
1. Configuration de la base de données
1. Ajoutez les paramètres de configuration suivants à database.php sous le répertoire de l'application ou du module :

return [    // 数据库类型
    'type'        => 'mysql',    // 数据库连接DSN配置
    'dsn'         => '',    // 服务器地址
    'hostname'    => '127.0.0.1',    // 数据库名
    'database'    => 'thinkphp',    // 数据库用户名
    'username'    => 'root',    // 数据库密码
    'password'    => '',    // 数据库连接端口
    'hostport'    => '',    // 数据库连接参数
    'params'      => [],    // 数据库编码默认采用utf8
    'charset'     => 'utf8',    // 数据库表前缀
    'prefix'      => 'think_',    // 数据库调试模式
    'debug'       => false,    // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
    'deploy'      => 0,    // 数据库读写是否分离 主从式有效
    'rw_separate' => false,    // 读写分离后 主服务器数量
    'master_num'  => 1,    // 指定从服务器序号
    'slave_no'    => '',    // 是否严格检查字段是否存在
    'fields_strict'  => true,    
];
Copier après la connexion

2.

Db::connect('mysql://root:1234@127.0.0.1:3306/thinkphp#utf8');
数据库类型://用户名:密码@数据库地址:数据库端口/数据库名#字符集
Copier après la connexion

2. requête (opération de requête) exécuter (opération d'écriture) Ajout, suppression, modification et requête d'instruction SQL d'origine

Db::execute("insert into t_test(username,password) values('qqq','qqq')");  
Db::execute("update t_test set username ='55' where id = '10'");
Db::query('select * from t_test where id = 5');
Db::execute('delete from t_test where id = 6');
Copier après la connexion

Liaison à trois paramètres nommée liaison d'espace réservé

支持参数绑定:
Db::query('select * from think_user where id=?',[8]);
Db::execute('insert into think_user (id, name) values (?, ?)',[8,'thinkphp']);
支持占位符绑定:
Db::query('select * from think_user where id=:id',['id'=>8]);
Db::execute('insert into think_user (id, name) values (:id, :name)',['id'=>8,'name'=>'thinkphp']);
Copier après la connexion

4. Constructeur de requête
1. Interroger des données :
(1) Interroger une donnée en utilisant :

// table方法必须指定完整的数据表名Db::table('think_user')->where('id',1)->find();//find 方法查询结果不存在,返回 null
Copier après la connexion

(2) Interroger un ensemble de données

Db::table('think_user')->where('status',1)->select();
select 方法查询结果不存在,返回空数组
Copier après la connexion

Si le paramètre de préfixe de table de données est défini, vous pouvez utiliser

Db::name('user')->where('id',1)->find();Db::name('user')->where('status',1)->select();
Copier après la connexion

Si votre table de données n'utilise pas la fonction de préfixe de table, alors les méthodes de nom et de table ont le même effet.
(3) Fonction assistant
Le système fournit une fonction d'assistant de base de données pour une requête plus pratique :

db('user')->where('id',1)->find();
db('user')->where('status',1)->select();
Copier après la connexion

Ajouter des données :
(1) Ajouter une donnée<🎜. >

$data = [&#39;foo&#39; => &#39;bar&#39;, &#39;bar&#39; => &#39;foo&#39;];Db::table(&#39;think_user&#39;)->insert($data);
Copier après la connexion
(2) Ajouter plusieurs éléments de données

$data = [
    [&#39;foo&#39; => &#39;bar&#39;, &#39;bar&#39; => &#39;foo&#39;],
    [&#39;foo&#39; => &#39;bar1&#39;, &#39;bar&#39; => &#39;foo1&#39;],
    [&#39;foo&#39; => &#39;bar2&#39;, &#39;bar&#39; => &#39;foo2&#39;]
];Db::name(&#39;user&#39;)->insertAll($data);
insertAll 方法添加数据成功返回添加成功的条数
Copier après la connexion
(3) Fonction assistant

// 添加单条数据
db(&#39;user&#39;)->insert($data);// 添加多条数据
db(&#39;user&#39;)->insertAll($list);
Copier après la connexion
3. Mettre à jour les données :

(1) Mettre à jour data Données dans le tableau

Db::table(&#39;think_user&#39;)
    ->where(&#39;id&#39;, 1)
    ->update([&#39;name&#39; => &#39;thinkphp&#39;]);
Copier après la connexion
(2) Fonction assistant

// 更新数据表中的数据
db(&#39;user&#39;)->where(&#39;id&#39;,1)->update([&#39;name&#39; => &#39;thinkphp&#39;]);// 更新某个字段的值
db(&#39;user&#39;)->where(&#39;id&#39;,1)->setField(&#39;name&#39;,&#39;thinkphp&#39;);// 自增 score 字段
db(&#39;user&#39;)->where(&#39;id&#39;, 1)->setInc(&#39;score&#39;);// 自减 score 字段
db(&#39;user&#39;)->where(&#39;id&#39;, 1)->setDec(&#39;score&#39;);
Copier après la connexion
4 Supprimer les données

(1) Supprimer les données dans le tableau // Supprimer
Db. selon la clé primaire ::table('think_user')->delete(1);
Db::table('think_user')->delete([1,2,3]);

// Suppression conditionnelle

Db::table('think_user')->where('id',1)->delete();
Db::table('think_user')- >where(' id','<',10)->delete();Fonction Assistant

// 根据主键删除
db(&#39;user&#39;)->delete(1);// 条件删除    
db(&#39;user&#39;)->where(&#39;id&#39;,1)->delete();
Copier après la connexion
5. Opération en chaîne

Supposons que nous souhaitions maintenant interroger une table User qui satisfait au statut de 1 Les 10 premiers enregistrements et souhaitent être triés en fonction de l'heure de création de l'utilisateur, le code est le suivant :

Db::table(&#39;think_user&#39;)
    ->where(&#39;status&#39;,1)
    ->order(&#39;create_time&#39;)
    ->limit(10)
    ->select();
Copier après la connexion
Les méthodes où, ordre et limite sont ici appelées méthodes d'opération en chaîne, sauf que la méthode select doit être placée À l'exception de la dernière (car la méthode select n'est pas une méthode d'opération chaînée), l'ordre d'appel des méthodes d'opérations chaînées n'est pas séquentiel.

Cet article explique les opérations associées à la base de données ThinkPHP5. Pour plus de contenu connexe, veuillez faire attention au site Web php chinois.

Recommandations associées :

À propos de l'utilisation de la base de données et du modèle ThinkPHP5

Une étude de cas sur le fonctionnement de la base de données thinkphp5.0

Énumérez quelques similitudes et différences entre ThinkPHP5 et ThinkPHP3

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal