affichage blob jpeg oracle

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : affichage blob jpeg oracle

Re: affichage blob jpeg oracle

par amorer » 09 févr. 2007, 08:55

Comme tu le dit, ocifetchinto() retourne un tableau, pas un objet.

Tu ne peux donc pas faire $enre[0]->... sur un tableau, surtout que ça m'étonnerais que le contenu d'une base soit une instance d'un objet :D

si tu fait un print_r($enre);, tu devrais arriver à voir ce que tu peut récupérer dans ce tableau ;)

Le pb est que le contenu de $enre[0] est une image jpeg. Et que je n'obtiens comme affichage que l'url (locale) du script!

PS : au fait, cette fonction est dépréciée ;)
Elle est peut-être dépréciée, mais elle marche avec un code qui me ramène des lignes de texte.
Je vais chercher par quoi elle est remplacée, je teste et je reviens.

Merci

Re: affichage blob jpeg oracle

par zeus » 08 févr. 2007, 21:10

Comme tu le dit, ocifetchinto() retourne un tableau, pas un objet.

Tu ne peux donc pas faire $enre[0]->... sur un tableau, surtout que ça m'étonnerais que le contenu d'une base soit une instance d'un objet :D

si tu fait un print_r($enre);, tu devrais arriver à voir ce que tu peut récupérer dans ce tableau ;)

PS : au fait, cette fonction est dépréciée ;)

affichage blob jpeg oracle

par amorer » 08 févr. 2007, 20:37

Je ne comprend pas le message d'erreur que je n'ai jamais eu : j'ai déjà fait fonctionné ce code.
Sinon le message te dis que tu essaie d'appliquer une méthode (load()) sur une variable ($enreg[0]) qui n'est pas un objet.
Et doù elle sort cette variable "$enreg" ?
Salut

Si j'en crois la doc php :
----------------------------------------------
int ocifetchinto (int stmt, array &result [, int mode])
ocifetchinto() retourne la ligne suivante (pour une commande SELECT) dans le tableau result. ocifetchinto() écrasera le contenu de result. Par défaut, result sera un tableau à index numérique, commencant à 1
----------------------------------------------

C'est donc mon tableau récepteur du fetch.
PHP a-t-il évolué sur ce point? Pourquoi attend-on un objet là où il est indiqué un tableau.

Je ne veux pas être trop lourd, mais je répète que j'ai déjà fait fonctionner ce code quelques dizaines de fois depuis 4-5 ans, sans pb. Et là tout d'un coup, je ne vois vraiment pas dans quoi je vais pouvoir récupérer mon blob pour l'envoyer à la page html :-(

Merci pour l'aide éventuelle.

par Truc » 07 févr. 2007, 22:30

Je ne comprend pas le message d'erreur que je n'ai jamais eu : j'ai déjà fait fonctionné ce code.
Sinon le message te dis que tu essaie d'appliquer une méthode (load()) sur une variable ($enreg[0]) qui n'est pas un objet.
Et doù elle sort cette variable "$enreg" ?

par amorer » 07 févr. 2007, 00:05

La ligne
echo $enreg[0]->load();
correspond à ce que j'en ai compris, au chargement de l'objet depuis la base et à son envoi à la page html.

Je ne comprend pas le message d'erreur que je n'ai jamais eu : j'ai déjà fait fonctionné ce code.

par Truc » 06 févr. 2007, 23:57

Salut,

Ton lien est en local :?

Sinon le message te dis que tu essaie d'appliquer une méthode (load()) sur une variable ($enreg[0]) qui n'est pas un objet.

Elle correspond à quoi cette ligne :
echo $enreg[0]->load(); 

par Truc » 06 févr. 2007, 23:54

Modération :
amorer, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ

affichage blob jpeg oracle

par amorer » 06 févr. 2007, 23:50

Salut

J'avais fait tourner en son temps sur une base de test un script php4 nommé affimg2.php, extrayant une image stockée en interne dans un blob oracle 8. Le code :
<?
$connection = OCILogon ("scott","tiger","emp");
$requete = "select img from image where cle=1";
$moncursor = OCIParse ($connection, $requete);
$result=OCIExecute($moncursor);
$result=OCIFetchinto($moncursor,&$enreg);
header("Content-type: image/jpg");
echo $enreg[0]->load();
$c2=ocilogoff($connection);
?>
Et ça marchait très bien. Je viens de retester ce code et j'obtiens comme affichage :

http://localhost/affimg2.php

et rien d'autre. J'ai fait afficher le source, et j'obtiens :
<br />
<b>Fatal error</b>: Call to a member function on a non-object in <b>/usr/local/apache2/htdocs/affimg2.php</b> on line <b>8</b><br />
Désolé, mais là, je cale.

Une piste svp?

Merci