Comment appeler une fonction stockée en php ? Appeler une procédure stockée ? Quel est le déclencheur ?

慕斯
Libérer: 2023-03-10 22:48:01
original
1784 Les gens l'ont consulté

Nous avons tellement appris sur PHP, mais je ne sais pas comment appeler les fonctions stockées en PHP ? Appeler une procédure stockée ? Quel est le déclencheur ? L'avez-vous parfaitement maîtrisé ? Sinon, suivez cet article pour continuer à apprendre

Recommandations associées : Quelles sont les utilisations de is, between, in et d'autres opérateurs en PHP ?

Instructions pour utiliser les fonctions stockées ou les procédures stockées en php

//Appeler les fonctions stockées :

$v1= $_POST["a];sv2 = $_POST["b];
$sq1 = "insert into tab1 (id, f2, f3)values ( null,nowO. fumnc1(Sv1 , $v2) )":$result= mysql_query($sql);
Copier après la connexion

//Appel d'une procédure stockée :

$v1 = $_POST[ "usemame"];$v2=$_POST["pass"];sv3= $_POST["age"];
$sql ="callinsert_user(Sv1,$v2,$v3 ); ";llinsert_user)是一个存储过程,带3个参数,会将该3个参数数据写入<insert〉某个表中。
Sresult = mysql_queryO;
Copier après la connexion

Un autre exemple d'utilisation d'une procédure stockée pour renvoyer un ensemble de résultats

$sql m"call Get_User_iInfo( sid )“;//Get_User_info)是一个存储过程,其中会返回某个指定id 的用户信息$result = mysql_query(ssql);
Copier après la connexion

Ce que vous obtenez ici est le "ensemble de résultats"

Trigger (trigger)

Signification :

Trigger est également un code de programmation prédéfini 〈 Identique aux procédures stockées et aux fonctions stockées〉, et a un nom. Mais : il ne peut pas être appelé, mais lorsqu'un événement (ajout, suppression, modification) se produit dans une certaine table, il sera automatiquement "déclenché" et appelé

Formulaire de définition : <. 🎜>

create trigger触发器名︰触发时机触发事件on表名foreach rowasbegin
//这里,才是编程的位置,也就是触发器的内部语句end3
Copier après la connexion

Explication :

1, il n'y a que 2 instants de déclenchement : avant《avant...), après》 ﹔2 Il n'y a que 3 événements déclencheurs : insérer. , mettre à jour, supprimer

2. Il n'y a que 3 événements déclencheurs : insérer, mettre à jour, supprimer

3, c'est-à-dire que la signification du déclencheur est : Avant (ou après) insertion (ou mise à jour , ou delete) sur une certaine table, le code (instruction) qui y est écrit sera exécuté ; c'est-à-dire qu'il n'y a que 6 situations dans lesquelles chaque table peut appeler ce déclencheur,

4. utilisé lors de l'ajout, de la suppression ou de la modification d'une table et que vous devez faire autre chose en même temps ; 5. À l'intérieur du déclencheur, il y a deux mots-clés représentant une sorte de Pour une signification spécifique, vous pouvez utiliser pour obtenir des données ∶

nouveau :

Il représente les données de la "nouvelle ligne" lorsque la mise à jour d'insertion est en cours d'exécution grâce à elle, vous pouvez obtenir la valeur de n'importe quel champ de cette nouvelle ligne de données ; sous la forme :

set@v1 = new.id;
Copier après la connexion

//Obtenir la valeur du champ id de la ligne nouvellement insérée ou mise à jour (à condition que l'id existe)

set@v2 = new.age;//同上,
Copier après la connexion

old:

It représente les données de "l'ancienne ligne" lorsque la suppression est en cours d'exécution. Grâce à lui, vous pouvez obtenir la valeur de n'importe quel champ de ces anciennes données de ligne sous la forme :

set @v1 = old.id:I
Copier après la connexion

Obtenir la valeur du champ id de. la ligne nouvellement insérée ou mise à jour (à condition que l'identifiant existe)

set @v2 = old.age;//同上;
Copier après la connexion

#Supprimez d'abord toutes les données dans tab_int_max :

delete from tab_int_max1;
Copier après la connexion

#Get tab_int La valeur maximale du champ f1 et stockée dans la variable @maxfselect max(f1) dans @maxf1 depuis tab_int;

#Ensuite, en fonction de la valeur maximale du champ f1 obtenue, comme condition, 3 champs sont retirés Valeur :

select f2 into @v2 from tab_int where f1 = @maxf1;
select f3 into @v3 from tab_int _ where f1 = @maxf1;#然后,将@maxf1,@v2,@v3插入到表tab_int_max1
insert into tab_int_max1 (f1,f2,f3)values( @maxf1,@v2,@v3);end;
#再建一个触发器,在表tab_int进行insert之前,将该行数据#也同时插入到一个跟其类似结果的表(tab_int_some)中
:CREATE TABLE tab_int_some (
id int(11) DEFAULT NULL,age tinyint(4) DEFAULT NULL);
create trigger copy_data before insert on tab_int for each rowbegin
set @v1 = new.f1;
#获得新行的字段f1的值;
set @v2 = new.f2;#获得新行的字段f2的值;
insert into tab_int_some(id,age)values(@v1,@v2);end;
Copier après la connexion
Apprentissage recommandé :

Tutoriel vidéo php

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