Php/oracle 9i

Fermé
stefanie_u2 - 12 juil. 2009 à 03:10
 stefanie_u2 - 16 juil. 2009 à 17:41
Bonjour a vous ,
je prépare un p fa ,sur la gestion d une bibliothèque avec php et oracle .
pour ma par la difficulté réside au niveau de la réservation je fais une recherche qui marche plutôt bien mais une fois que je désire faire la réservation d'un livre ,il m affiche un message coe quoi symbole non numérique rencontre a la place d un numérique et je vous avoue que cela me gonfle un peu simplement que sur ma table réservation je ne retrouve rien de tel .

je vous envoie la structure de la table reservation
date prêt not null date
numutilisateur not null number (38)
numouvrage notnull number (38)
dateannulation date
datereservation date
numreservation number notnull number(38)


et voici le code php

$conn=ocilogon("login","motdepasse","nombase");
if($conn){
$vtitre=$_post['titre'];
echo $vtitre;
$today=date("D/M/Y");

sesssion start ();
$vnum=$_session["numutilisateur"];
$query="select numouvragefrom ouvrage where titre ='vtitre';
$stmt=ociparse($conn,$query);
ociexecute($stmt);
$nrows = ocifetchstatement($stmt,$results);
if($nrows>0){
reset($results);
while($column=each($results)){
$data=$column['value'];
$vnumouvrage=$data[0];
}
}
ocifeetchstatement($stmt);
echo vnumouvrage;
if($vnumouvrage! = 0)
$query="insert into reservation values('12/12/1900','$vnum','$vnumouvrage','10/10/1989',1);
$ordre=ociparse($conn,$query);
ociexecute($ordre,oci_commit_on_succes);
}
}

warning:ociexecute(): OCIstmtExecute:ORA-1858 :caractere non numerique rencontré à la place d'un numerique


je travaille avec php4 et la base oracle 9i

merci de votre aide
A voir également:

3 réponses

chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
12 juil. 2009 à 09:27
Salut,
Tu as essayé de faire un to_date pour tes colonnes date?
$query="insert into reservation values(to_date('12/12/1900','DD/MM/YYYY'),'$vnum','$vnumouvrage',to_date('10/10/1989','DD/MM/YYYY'),1); ";
Il semble aussi que ta table a 6 colonnes, or tu insères 5 champs.....
Voila quelques pistes!!
@+
0
bonjour ,
merci bcp de votre aide mais il y a tjrs quelques choses qui coince
la meme erreur
$query="insert into reservation (to_date('12/12/1900','DD/MM/YYYY),'$vnum',$vnumouvrage',to_date('10/10/1989','DD/MM/YYYY'),'$today',seqres.nextval)";
$ordre=ociparse($connection,$query);
ociexecute($ordre,oci_commit_on_success);
}

}

warning:ociexecute():ocistmtexecute:ora-01858:caractere non numerique rencontre a la place d un numerique

alors la table reservation
datepret not null date
numutilisateur notnull number(38)
numouvrage notnull number (38)
dateannulation date
datereservation date
numreservation notnull number(38)

merci encore pour ce que vous faites
0
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
13 juil. 2009 à 13:42
Salut,
<?php
$connect = ocilogon("log",^pass","mon_instance");
if ( ! $connect )
{
echo "Unable to connect: " . var_dump( OCIError() );
die();
}
$vnum=4;
$vnumouvrage=5560;
$query="insert into reservation (datepret ,numutilisateur,numouvrage ,dateannulation ,datereservation ,numreservation) values (to_date('12/12/1900','DD/MM/YYYY'),$vnum,$vnumouvrage,to_date('10/10/1989','DD/MM/YYYY'),trunc(sysdate),2)"; 
$stmt = ociparse($connect,$query);
OCIExecute($stmt);

?>

J'ai essayé cela et ca fonctionne chez moi...
Tu peux tester?
@+
0
bonjour,

merci ,effectivement ca marche .
j ai du manipuler un tout petit peu le code au niveau de la date($today=date("D/M/Y"));
,le format n etait pas le mm que celui d'oracle.
sans vous je crois je n aurai pas trouve cette piste .

merci encore.
0