[PDO] [FIREBIRD]EXECUTE BLOCK et utilisation des paramètres
Bonjour,
Ce bout de code consiste à insérer 20 lignes dans une table client (NUM : integer auto incremente, Nom: varchar(20)) avec des noms different C1,C2,C3......C20
je n'arrive pas à exécuter un excecute block dans un fichier PHP alors que la même requête s’exécute très bien ailleurs ,
le problème réside dans le parametre :N , puisque j'ai essayé de le replacer avec une valeur 'ESSAI' par exemple , il insert bien 20 lignes avec comme nom ESSAI
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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
<?php
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: PUT, GET, POST, DELETE");
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");
$success = false;
$data = array();
$host='c:/clients.fdb';
$user='SYSDBA';
$pas='masterkey';
$dbh = new PDO("firebird:dbname=$host;charset=UTF-8",$user,$pas);
$sql1 = "
execute block as
declare variable I INTEGER;
declare variable N varchar(20);
begin
I=0;
N=I;
while (I <20)
DO begin
I=I+1;
N=I;
insert into client (NOM) VALUES ('C'||:N);
end
END";
$req1 = $dbh->prepare($sql1);
if($req1){
$confirm = $req1 -> execute();
if($confirm){
$array['success'] = true;
$array['msg'] = "Les clients ont bien été ajouté ";
}else{
$array['success'] = false;
$array['msg'] = "Une erreur d'ajout s'est produite ! ";
}
}else{
$array['success'] = false;
$array['msg'] = "Impossible d'ajouter ces clients !! ";
}
echo json_encode($array);
$sql2 = "SELECT nom FROM client";
$req2 = $dbh->query($sql2);
if($req2){
$resultats2 = $req2->fetchAll(PDO::FETCH_ASSOC);//obligatoires pour $count
$array['success'] = true;
$array['msg'] = "VOICI LA LISTE ";
$array['return'] = $resultats2;
}else{
$array['success'] = false;
$array['msg'] = "Erreur (1) de requete SQL ! ";
}
echo json_encode($array); |
Merci