Création de trigger depuis PHP

Nouveau WRInaute
Bonjour,

Je souhaite crée sur une table un trigger, j'y arrive très bien en passant par une console Mysql sous Linux mais rien à faire si j'essaie de le crée avec du PHP ex avec un truc dans ce genre :
Code:
$trigger = 'DELIMITER |
CREATE TRIGGER delete_customer AFTER DELETE ON osc_customers
  FOR EACH ROW BEGIN
  DELETE FROM db_net.osc_customers
  WHERE customers_id = old.customers_id
  AND IDC = 33;
END;|
DELIMITER ;';

mysql_query($trigger);

Est-il seulement possible de le crée en console ?
 
WRInaute discret
salut

Avec mysql_query(), tu ne peux pas envoyer plusieurs requètes (séparées donc par un point-virgule), il te faut les envoyer séparémment. De plus, l'extension mysql n'est pas faite pour être utilisée avec une base de donnée mysql >=5. Si tu le peux, utilise l'extension mysqli ou PDO

http://php.net/mysqli
http://php.net/pdo

fab
 
Nouveau WRInaute
En effet mysqli est la solution :

Code:
<?php
$link = mysqli_connect("192.168.1.1", "user", "pass", "db_bt_B740zp98wDPBU7Daa8BO");

if (mysqli_connect_errno()) {
    echo mysqli_connect_error();
    exit();
} else {
    echo 'connexion reussie !<br>';
}

$query = 'CREATE TRIGGER delete_customer AFTER DELETE ON db_bt_B740zp98wDPBU7Daa8BO.osc_customers FOR EACH ROW
BEGIN
  DELETE FROM db_net.osc_customers
  WHERE customers_id = old.customers_id
  AND IDC = 33;
END;';
$result = mysqli_query($link, $query);

echo mysqli_error($link);
mysqli_close($link);
?>

Merci bien de votre aide :)
 
WRInaute impliqué
En 2 ou 3 mots, pourquoi utiliser un trigger???
Si vous aviez un exemple concrêt ça serait l'idéal ;-)
 
Nouveau WRInaute
C'est simple, j'ai une base maître et des bases esclaves. Je souhaite que quand dans ces dernières des données sont insérées, modifiées ou effacées, elles le soient aussi dans la base maître. J'utilise des trigers pour cela sur chacunes des tables des bases esclaves.
 
WRInaute discret
Un trigger (ou declencheur) est une action declenchée automatiquement suite à une autre. Pour un forum, par exemple, tu peux imaginer un trigger : lorsque un message est supprimé, un trigger est appellé et efface tous les messages enfants.

fab
 
WRInaute impliqué
fablezouave a dit:
Un trigger (ou declencheur) est une action declenchée automatiquement suite à une autre. Pour un forum, par exemple, tu peux imaginer un trigger : lorsque un message est supprimé, un trigger est appellé et efface tous les messages enfants.

fab

Merci fablezouave,

Ce que tu nous explique est en général codé dans le secript PHP par exemple... Qu'apporte de plus cette notion de Trigger...?
Scuses, j'ai du mal à comprendre... :oops:
 
WRInaute discret
OJAL a dit:
Ce que tu nous explique est en général codé dans le secript PHP par exemple... Qu'apporte de plus cette notion de Trigger...?
Scuses, j'ai du mal à comprendre... :oops:

* De ne pas avoir à le coder en PHP
* d'augmenter la rapidité d'exécution des scripts, le trigger est lancé comme tâche de fond
* facilité de maintenance

par exemple
 
Discussions similaires
Haut