Maison > cadre php > PensezPHP > le corps du texte

Événements de requête d'opération de base de données ThinkPHP, opérations de transaction, surveillance SQL

藏色散人
Libérer: 2021-02-03 18:49:06
avant
2867 Les gens l'ont consulté

La colonne tutorielle suivante de thinkphp vous présentera les événements de requête, les opérations de transaction et la surveillance SQL des opérations de base de données ThinkPHP. J'espère qu'elle sera utile aux amis dans le besoin. !

Événements de requête

Événements de requête (V5.0.4+)

À partir de la version 5.0.4+, la prise en charge des événements d'opération CURD de la base de données a été ajoutée, notamment :

Requête event Seules les méthodes find, select, insert, update et delete sont prises en charge.

Enregistrer l'événement

Utilisez la méthode suivante pour enregistrer l'événement de requête de base de données

Query::event('after_insert','callback');
Query::event('before_select',function($options,$query){    // 事件处理
    return $result;
});
Copier après la connexion

Opération de transaction

Si vous utilisez le traitement des transactions, le moteur de base de données doit prendre en charge le traitement des transactions. Par exemple, MyISAM de MySQL ne prend pas en charge le traitement des transactions et nécessite l'utilisation du moteur InnoDB.

Utilisez la méthode de transaction pour effectuer des transactions de base de données. Lorsqu'une exception se produit, elle sera automatiquement annulée, par exemple :

Contrôler automatiquement le traitement des transactions

Db::transaction(function(){
    Db::table('think_user')->find(1);
    Db::table('think_user')->delete(1);
});
Copier après la connexion

Contrôle manuel des transactions

// 启动事务Db::startTrans();try{
    Db::table('think_user')->find(1);
    Db::table('think_user')->delete(1);    // 提交事务
    Db::commit();
} catch (\Exception $e) {    // 回滚事务
    Db::rollback();
}
Copier après la connexion

 Notez que pendant la transaction opérations, assurez-vous que votre base de données La connexion est la même.

Écouter SQL

Si vous activez le mode débogage de la base de données, vous pouvez exécuter n'importe quelle commande sur la base de données. Pour surveiller les opérations SQL, utilisez la méthode suivante :

Db::listen(function($sql, $time, $explain){    // 记录SQL
    echo $sql. ' ['.$time.'s]';    // 查看性能分析结果
    dump($explain);
});
Copier après la connexion

Par défaut, si aucune opération de surveillance n'est enregistrée, ces exécutions SQL seront enregistrées dans les journaux selon différents types de journaux.

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:cnblogs.com
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