Bonjour à tous,

Je suis en train de faire des fonctions stockées avec Mysql et Zend.

Les procédures stockées, c ok.. les vues, c ok, mais pas les fonctions stockées.

J'ai des erreurs de syntaxe ou alors le moteur mysql me dit la procédure is_test() n'existe pas (et oui, c une fonction)

Par exemple, la fonction (qui aura des paramètres en fait) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
BEGIN
declare is_test bool;
 
SELECT
	count(`USR_ID`) > 0 INTO is_test 
FROM
	`utilisateur`;
 
RETURN is_test;
 
END
Avec Zend :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
$dbAdapter = Zend_Registry::get('front_db');
$func = 'CALL is_test()';
$stmt= $dbAdapter->query($func);
J'ai essayé plusieurs manieres de faire (comme pour les vues) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$func = 'SELECT * FROM is_test()';
Les 2 ne marchent pas, comment faire ?.

Pour rappel, voici comment faire pour des procédures stockées et des vues (si çà peut aider quelqu'un ) :
Code : 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
$call = 'CALL sp_utilisateur_ins("'.
                $data['USR_IDENTIFIANT'].'","'.
                $data['USR_MOT_DE_PASSE'].'","'.
                $data['USR_ADRESSE_EMAIL'].'","'.
                $data['USR_CONTROLE'].'","'.
                $data['USR_ROLE'].'","'.
                $data['USR_CLE_ACTIVATION'].'","'.
                '0","'.
                $data['USR_DATE_CREATION'].'","'.
                '1",'.
                '@PAR_USR_ID)';
 
$stmt = $dbAdapter->query($call);
$row  = $dbAdapter->query("SELECT @PAR_USR_ID");
$row  = $row->fetchAll();
 
$insertId = (int)$row[0]['@PAR_USR_ID'];
 
 
$rows= $dbAdapter->query("SELECT * FROM view_available_annonce");
var_dump($rows->fetchAll());
Merci
Fabrice