|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() Inscription : juillet 2005 Messages : 123 ![]() |
Bonjour
Je tente de créer un trigger permettant lors de la suppression d'une ligne dans une table de supprimer automatiquement toutes les données liées dans une autre table. Je le faisais jusqu'à présent manuellement avec une requète du style Code :
$mysqli->real_query ('DELETE t1.*, t2.* FROM lstWIBloc AS t1 LEFT JOIN lstWIBlocLang AS t2 on t2.uidBloc=t1.uidBloc WHERE .... ') OR .... ; Mais certaines procédures de suppression complexes faisant intervenir jusqu'à six tables, j'ai eu l'idée d'utiliser les triggers. Si j'utilise la requète suivante depuis mon editeur MySQL (SQLyog) cela fonctionnne : Code SQL :
Mais si j'utilise la même requète depuis PHP cela ne fonctionne pas (Il déclare une erreur de syntaxe dans la requète) J'ai essayé avec $mysqli->real_query et aussi avec $mysqli->multi_query Est-il possible de créer des triggers depuis PHP ? Si oui où se trouve mon erreur ? Sinon, tant pis je laisse tomber les triggers, car il est indispensable que PHP mette à niveau la base de donnée tout seul sans intervention de ma part sur la structure de la base |
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() Inscription : janvier 2005 Messages : 2 572 ![]() |
![]() je ne vois pas pourquoi tu veux créer tes trigger au fur et à mesure : tu crées tous les trigger dont tu as besoin à la création de ta base et c'est terminé. PS : les triggers et les procédures stockées sont accessible qu'à partir de MySQL 5.0.
__________________
Pensez au tag ![]() Les règles du Forum Dev. Web : FAQ (X)HTML/CSS | Tutos (X)HTML | Tutos CSS PHP : FAQ PHP | Tutos PHP | Benchmark PHP 5 SQL : Cours SQL |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : juillet 2005 Messages : 123 ![]() |
Bonjour,
Le problème c'est que le code PHP en question sera redistribué sur N sites clients (chaque site ayant sa propre base) , avec ou sans contrats de mise à jour. En conséquence, lors de la modification des script PHP (nouvelles fonctionnalités par exemple), il peut être nécessaire d'adapter la base de donnée, ce qui sera fait automatiquement par un script updateDB.php si le numéro de révision courant de la base est inférieur à celui requis par la version courante du script... Que le client parte avec une base vide ou une base déjà existante, la MAJ de la structure se fera d'une manière transparente En plus, en fonction de la présence ou de l'absence de contrats de maintenance, le numéro de version des scripts n'évoluera pas nécessairement à la même vitesse ... Avec la méthode que j'ai choisi, la seule chose que j'ai à faire pour mettre à jour n'importe quel client est de lui donner le nouveau répertoire contenant les scripts (genre 2.2.15) et de lui refiler le version.php qui afin que l'exécution soit transférée vers le nouveau dossier, suite à quoi l'ancien dossier peut être supprimé (ce version.php contient aussi le numéro de version de la base requis) |
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() ![]() Inscription : janvier 2005 Messages : 2 572 ![]() |
tu ne m'as pas dit quelle version de MySQL tu avais : 5 ou inférieur ?
__________________
Pensez au tag ![]() Les règles du Forum Dev. Web : FAQ (X)HTML/CSS | Tutos (X)HTML | Tutos CSS PHP : FAQ PHP | Tutos PHP | Benchmark PHP 5 SQL : Cours SQL |
|
|
00
|
|
|
#5 | |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Citation:
Cordialement, Julp. |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com