par
nouhoun » 23 juin 2009, 19:08
Je debute avec php que j'utilise avec une base de donnée oracle
j'ai créé une page web dans laquelle l'utilisateur fournit certains renseignements. En cliquant sur un bouton "valider"
ces informations sont enregistées dans une table EMPLOYE
Le code php exécuté est le suivant
<?php
//récupération des données saisies
$mecano=$_POST['numsolde'];
$nom=$_POST['nom_gendarme'];
$prenoms=$_POST['prenom_gendarme'];
$datenais=$_POST['datenais_gendarme'];
$lieunais=$_POST['lieunais_gendarme'];
$unite=$_POST['unite_actuelle'];
$grade=$_POST['grade_actuel'];
$sexe='M';
//connexion à la base de données
$conn = OCILogon('bti', 'btigend','X.X.X.X:1521/dbalpha');
//ordre sql pour insérer les données
$req = 'INSERT INTO EMPLOYE(Numsolde, nom, prenom, sexe, date_naissance, code_lieu_naissance, code_unite_actuelle, code_grade_actuel) VALUES(:mymecano, :mynom, :myprenoms, :mysexe, :mydatenais, :mylieunais, :myunite, :mygrade)';
$stid =ociparse($conn, $req);
if (!$stid) {
$e = ocierror($conn);
print htmlentities($e['message']);
exit;}
ocibindbyname($stid, ":mymecano", $mecano);
ocibindbyname($stid, ":mynom", $nom);
ocibindbyname($stid, ":myprenoms", $prenoms);
ocibindbyname($stid, ":mysexe", $sexe);
ocibindbyname($stid, ":mydatenais", $datenais);
ocibindbyname($stid, ":mylieunais", $lieunais);
ocibindbyname($stid, ":myunite", $unite);
ocibindbyname($stid, ":mygrade", $grade);
$r = ociexecute($stid);
echo($req);
if ($r)
print "Une ligne a été insérée";
else
print "aucune ligne n'a été insérée";
ociclose($conn);
?>
quand je clique sur le bouton valider le message suivant s'affiche "aucune ligne n'a été insérée"
J'ai effectué quelques tests.
La connexion à la base de donnée se passe sans problème
Mais mon code semble coincer au niveau des bind car le "echo($req);" que j'ai inséré en guise de test après
"$r = ociexecute($stid);" me ramène le résultat suivant "INSERT INTO GENDARM(Numsolde, nom, prenom, sexe, date_naissance, code_lieu_naissance, code_unite_actuelle, code_grade_actuel) VALUES(:mymecano, :mynom, :myprenoms, :mysexe, :mydatenais, :mylieunais, :myunite, :mygrade)"
comment dois-je faire?
Je debute avec php que j'utilise avec une base de donnée oracle
j'ai créé une page web dans laquelle l'utilisateur fournit certains renseignements. En cliquant sur un bouton "valider"
ces informations sont enregistées dans une table EMPLOYE
Le code php exécuté est le suivant
[php]
<?php
//récupération des données saisies
$mecano=$_POST['numsolde'];
$nom=$_POST['nom_gendarme'];
$prenoms=$_POST['prenom_gendarme'];
$datenais=$_POST['datenais_gendarme'];
$lieunais=$_POST['lieunais_gendarme'];
$unite=$_POST['unite_actuelle'];
$grade=$_POST['grade_actuel'];
$sexe='M';
//connexion à la base de données
$conn = OCILogon('bti', 'btigend','X.X.X.X:1521/dbalpha');
//ordre sql pour insérer les données
$req = 'INSERT INTO EMPLOYE(Numsolde, nom, prenom, sexe, date_naissance, code_lieu_naissance, code_unite_actuelle, code_grade_actuel) VALUES(:mymecano, :mynom, :myprenoms, :mysexe, :mydatenais, :mylieunais, :myunite, :mygrade)';
$stid =ociparse($conn, $req);
if (!$stid) {
$e = ocierror($conn);
print htmlentities($e['message']);
exit;}
ocibindbyname($stid, ":mymecano", $mecano);
ocibindbyname($stid, ":mynom", $nom);
ocibindbyname($stid, ":myprenoms", $prenoms);
ocibindbyname($stid, ":mysexe", $sexe);
ocibindbyname($stid, ":mydatenais", $datenais);
ocibindbyname($stid, ":mylieunais", $lieunais);
ocibindbyname($stid, ":myunite", $unite);
ocibindbyname($stid, ":mygrade", $grade);
$r = ociexecute($stid);
echo($req);
if ($r)
print "Une ligne a été insérée";
else
print "aucune ligne n'a été insérée";
ociclose($conn);
?>
[/php]
quand je clique sur le bouton valider le message suivant s'affiche "aucune ligne n'a été insérée"
J'ai effectué quelques tests.
La connexion à la base de donnée se passe sans problème
Mais mon code semble coincer au niveau des bind car le "echo($req);" que j'ai inséré en guise de test après
"$r = ociexecute($stid);" me ramène le résultat suivant "INSERT INTO GENDARM(Numsolde, nom, prenom, sexe, date_naissance, code_lieu_naissance, code_unite_actuelle, code_grade_actuel) VALUES(:mymecano, :mynom, :myprenoms, :mysexe, :mydatenais, :mylieunais, :myunite, :mygrade)"
comment dois-je faire?