Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & ODBC
PHP & ODBC Forum d'entraide sur ODBC avec PHP. Avant de poster -> FAQ ODBC
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/11/2010, 15h27   #1
Candidat au titre de Membre du Club
 
Inscription : mars 2003
Messages : 15
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 15
Points : 10
Points : 10
Par défaut Insertion d'un fichier dans une base oracle 8i via ODBC

Bonjour,

J'ai un petit code qui marche avec PHP en CGI sous Apache mais pas en mode module ...

Selon le driver utilisé, j'ai 52 ou 0 octet de stockée dans la base.
Si je suis en mode CGI j'ai bien l'image en entier....

Problème de configuration ?

Si quelqu'un a une idée ....

Merci

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
 
<?php
   /**
   CREATE TABLE TESTERIC.UPLOAD(
   FICHIER  VARCHAR2(50),
   CONTENT  BLOB)
   */
   /**
   * Test d'upload dans une table oracle via ODBC et PHP en module
   */
      $conf['DB_dsn'] = 'DRIVER=ORACLE ODBC DRIVER;DBQ=BDDEV8I2;SERVER=BDDEV8I2;';
//      $conf['DB_dsn'] = 'DRIVER={Microsoft ODBC for Oracle};SERVER=BDDEV8I2;';
      $conf['DB_user'] = 'TESTERIC';
      $conf['DB_pwd'] = 'TESTERIC';
      $file = 'D:\DocumentsEric\Mes images\JamesDean.jpg';
      $fsize = filesize($file)+10;  //le +10 des fois que... mais sert a rien
      ini_set('odbc.defaultlrl',$fsize);  //sert à rien
      ini_set('odbc.defaultbinmode',ODBC_BINMODE_PASSTHRU); //sert à rien
      //$file = 'D:\DocumentsEric\lorem.txt';
 
      //utilisation des fonctions direct ODBC
      $db = odbc_connect($conf['DB_dsn'],$conf['DB_user'],$conf['DB_pwd']);
      if($db===false){
         die("ERREUR : odbc_connect<br/>\n");
      }
//      odbc_autocommit($db,false);//begintrans
 
      $f = date('d/m/Y H:i:s');
      $sql = 'INSERT INTO UPLOAD (FICHIER) VALUES(\''.$f.'\')';
      echo "$sql<br />";
      $rs = odbc_exec($db, $sql);
      if($rs===false){
         $error = 'INSERT :'."\n";
         echo "$error<br/>\n";
      }else{
         $i = odbc_num_rows($rs);
         echo "INSERT : ".$i." lignes affectée<br/>\n";
      }
      echo odbc_errormsg($db)."</br>\n";
 
      //prepare
      $sql = "UPDATE UPLOAD SET CONTENT = ? WHERE FICHIER = '$f' ";
      echo "$sql<br />";
      $prep_id = odbc_prepare($db, $sql);
      echo odbc_errormsg($db)."</br>\n";
      if(!$prep_id) echo "PREPARE: erreur<br/>\n";
      echo odbc_errormsg($db)."</br>\n";
 
      odbc_execute($prep_id,array("'".$file."'"));
      echo odbc_errormsg($db)."</br>\n";
      if(!$rs){
         $error = 'UPDATE: erreur $rs='.print_r($rs,true)."\n";
         echo "$error<br/>\n";
         echo odbc_errormsg($db)."</br>\n";
      }else{
         echo "UPDATE: ok<br/>\n";
         echo odbc_errormsg($db)."</br>\n";
      }
      odbc_close($db);
 
      //commit
//      if(!odbc_commit($db)) echo "COMMIT: erreur</br/>\n";
?>
garfield_fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 09h58   #2
Candidat au titre de Membre du Club
 
Inscription : mars 2003
Messages : 15
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 15
Points : 10
Points : 10
Salut,

Comme je n'ai pas trouvé comment faire...je suis passé par OLEDB en utilisant l'API COM. La ça marche...
garfield_fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h48.


 
 
 
 
Partenaires

Hébergement Web