Appel fonctions stockées // Mysql
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:
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:
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:
$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:
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