Procédure stockée non exécutée
Bonjour,
j'appelle une procédure stockée dans mon code PHP, mais, rien ne se passe:
pas d'erreur, pas d'insertion..
La version de MySql : 5
Code PHP (appel de la procédure):
Code:
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 30 31 32 33 34 35
|
if( isset($_POST['INSERT_BIEN']) == 'Ajouter') {
$id_ven_loc=$_POST['choix_ven_loc'];
$id_typ_bien=$_POST['choix'];
$prix=$_POST['prix'];
$etat=$_POST['etat'];
$surface=$_POST['surface'];
$id_ville=$_POST['choixVille'];
$com=$_POST['com'];
$quartier=$_POST['quartier'];
$piece = $_POST['nbPiece'];
try {
echo "try";
$dbh = new PDO("mysql:host=localhost;dbname=nbyimmo", "root", "************");
} catch(PDOException $e) {
echo $e->getMessage();
die();
}
echo "stmt1";
$stmt = $dbh->prepare("CALL pcnb_ajout_bie($etat,$surface,$piece,$prix,$com,$id_ville,$quartier,$id_ven_loc,$id_typ_bien)");
echo "stmt2";
// Appel de la procédure stockée
echo "exe1";
$stmt->execute();
echo "exe2";
if(false != ($return_value = $stmt->fetch(PDO::FETCH_ASSOC)))
{
echo "(La procédure a retourné : $return_value[Result])";
} else {
echo "(La procédure a retourné uuuuuu : $return_value)";
}
} |
La procédure stockée :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
DELIMITER $$
--
-- Procédures
--
DROP PROCEDURE IF EXISTS `pcnb_ajout_bien`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `pcnb_ajout_bien`(
in etat varchar(10),
in surface int,
in piece int,
in prix varchar(10),
in com varchar(1000),
in id_ville int,
in quartier varchar(20),
in id_ven_loc int,
in val_ven_loc int)
begin
declare id_bien int;
INSERT INTO biens (etat,surface,piece,prix,com,id_ville,quartier,id_ven_loc) values
(etat,surface,piece,prix,com,id_ville,quartier,id_ven_loc);
SELECT LAST_INSERT_ID() into id_bien;
INSERT INTO rel_bien_typ (id_bien,id_typ_bien) values
(id_bien,val_ven_loc);
end$$ |
Je sais plus où chercher...
J'ai aussi cherché à exécuter ma procédure dans une fenetre mysql...mais rien a faire, j'ai une erreur quand je me connecte :
ERROR 1045 (28000): AccÞs refusÚ pour l'utilisateur: 'ODBC'@'@localhost' (mot de passe: OUI)
Si quelqu'un a une idée...
Merci,