salut tout le monde
j'ai un gros problème qui m'empêche d'avancer dans mon projet ,voila
je dois utiliser beaucoup de procedures stockées bon j'ai pu lire sur le net des documents qui vous apprennent comment les écrire et comment les appeler avec php , normalement j'ai suivi tous leurs instructions mais bon ça n'a pas marcheé ci dessu le code de l' une de mes procedure stockée :

Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
CREATE PROCEDURE `verif_numtel` (IN login varchar(10), IN numero INT,INOUT erreur INT) DETERMINISTIC
BEGIN
SET erreur= 0;
 
IF(numero<0) THEN SET erreur= 1;
 
ELSE INSERT INTO Membre_de_bureau (loginMB,num_telMB) VALUES (login, numero);
 
END IF;
 
END;//
elle est sensée verifier si le numéro de telephone est positive si oui elle insert le tuple dans la base sinon elle envoie un msg d'erreur.
et voici un petit example que j'ai utilisé pour tester si cette derniére marche ou pas:

Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
try
{
	$bdd = new PDO('mysql:host=localhost;dbname=club_investissement1', 'root', '');
}
catch (Exception $e)
{
        die('Erreur : ' . $e->getMessage());
}
$login='prince';$numtel= 555; $err= 0;
 
$req=$bdd->prepare("CALL verif_numtel(?,?,?)");
$req->bindParam(1, $login, PDO::PARAM_STR,10);
$req->bindParam(2, $numtel, PDO::PARAM_INT);
$req->bindParam(3, $err, PDO::PARAM_INT|PDO::PARAM_INPUT_OUTPUT);
$req->execute();
 
print "procedure returned $err\n";
 
$login='coco';$numtel= -555; $err= 0;
 
 
$req=$bdd->prepare("CALL verif_numtel(?,?,?)");
$req->bindParam(1, $login, PDO::PARAM_STR,10);
$req->bindParam(2, $numtel, PDO::PARAM_INT);
$req->bindParam(3, $err, PDO::PARAM_INT|PDO::PARAM_INPUT_OUTPUT);
 
$req->execute();
 print "procedure returned $err\n";
normalement le tuple prince devrait étre insérer dans ma base mais papa "coco" et j'aurais comme message 0 ensuite 1
mais voila aucun tuple n'est ajouté et la valeur de erreur qui est affich est celle de l'initialisation ie 0 c'est comme si ma procedue n'est pas executer.