enregistrer objet blob
13 messages • Page 1 sur 1
Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics
- roblescriso
- Nouveau WRInaute
- Messages: 33
- Inscription: Mer Avr 20, 2005 12:18
enregistrer objet blob
salut à tous! bon j'ai une BD Oracle et j'essaye d'enregistrer une image comme objet blob mais ça marche pas.. voici mon code:
$magic= new magic($database);
$dnaissance=$dn1 . "/" . $dn2 . "/". $dn3;
$dentree=$de1 . "/" . $de2 . "/". $de3;
$dsortie=$ds1 . "/" . $ds2 . "/". $ds3;
if (strlen($dnaissance)!=8)
$dnaissance=null;
if (strlen($dentree)!=8)
$dentree=null;
if (strlen($dsortie)!=8)
$dsortie=null;
$person->add($element, $nom, $prenom, $sexe, $langue, $photo, $dnaissance, $dentree, $dsortie);
$photo = $_FILES['photo']['tmp_name'];
$photo_name = $_FILES['photo']['name'];
if ($photo!="")
{
$database = new database();
$filetype=strrchr($photo_name, ".");
$db_extention_id=$person->get_extention($element);
$cle_parent=$person->get_roleid($person->ididentite);
$data = fread(fopen($photo, "rb"), filesize($photo));
$database->add_blob("photo",$data);
$database->dbquery("INSERT INTO db_extensions_val(date_creation, user_creation, element_creation, status, db_element_id, id, db_extention_id, cle_parent, valeur_alpha, valeur_blob)
VALUES(SYSDATE, '" . INSERT_USER . "', $element, " . ACTIVE_ELEMENT . ", $element, " . $magic->getid("DB_EXTENSIONS_VAL") . ", $db_extention_id, $cle_parent, '$filetype', EMPTY_BLOB()) RETURNING valeur_blob INTO :photo");
$database->dbclose();
}
et dans la page fonctions.php j'ai les classes person et database
voici le message d'erreur :
Fatal error: Call to a member function add() on a non-object in /data/www/secure.idinfo.ch/shop/admin/ajoutertout.php on line 275
si qq a une idée aidez moi svp! merci bc!
$magic= new magic($database);
$dnaissance=$dn1 . "/" . $dn2 . "/". $dn3;
$dentree=$de1 . "/" . $de2 . "/". $de3;
$dsortie=$ds1 . "/" . $ds2 . "/". $ds3;
if (strlen($dnaissance)!=8)
$dnaissance=null;
if (strlen($dentree)!=8)
$dentree=null;
if (strlen($dsortie)!=8)
$dsortie=null;
$person->add($element, $nom, $prenom, $sexe, $langue, $photo, $dnaissance, $dentree, $dsortie);
$photo = $_FILES['photo']['tmp_name'];
$photo_name = $_FILES['photo']['name'];
if ($photo!="")
{
$database = new database();
$filetype=strrchr($photo_name, ".");
$db_extention_id=$person->get_extention($element);
$cle_parent=$person->get_roleid($person->ididentite);
$data = fread(fopen($photo, "rb"), filesize($photo));
$database->add_blob("photo",$data);
$database->dbquery("INSERT INTO db_extensions_val(date_creation, user_creation, element_creation, status, db_element_id, id, db_extention_id, cle_parent, valeur_alpha, valeur_blob)
VALUES(SYSDATE, '" . INSERT_USER . "', $element, " . ACTIVE_ELEMENT . ", $element, " . $magic->getid("DB_EXTENSIONS_VAL") . ", $db_extention_id, $cle_parent, '$filetype', EMPTY_BLOB()) RETURNING valeur_blob INTO :photo");
$database->dbclose();
}
et dans la page fonctions.php j'ai les classes person et database
voici le message d'erreur :
Fatal error: Call to a member function add() on a non-object in /data/www/secure.idinfo.ch/shop/admin/ajoutertout.php on line 275
si qq a une idée aidez moi svp! merci bc!
- dansmaregion
- Nouveau WRInaute
- Messages: 2
- Inscription: Mer Juin 08, 2005 12:24
J'ai l'impression que ton objet person n'a pas été instancié.
- roblescriso
- Nouveau WRInaute
- Messages: 33
- Inscription: Mer Avr 20, 2005 12:18
alors j'ai fait:
$person=new person($id_ad_adresse,$database,$magic,$data, $nom,$prenom,$langue,$sexe,$dnaissance,$photo,$ididentite,$tcomcodes,$dentree,$dsortie);
et mnt j'ai le message:
Fatal error: Class 'generic_data' not found in /data/www/secure.idinfo.ch/shop/admin/fonctions.php on line 497
pk c si compliqué? lol 
$person=new person($id_ad_adresse,$database,$magic,$data, $nom,$prenom,$langue,$sexe,$dnaissance,$photo,$ididentite,$tcomcodes,$dentree,$dsortie);
et mnt j'ai le message:
Fatal error: Class 'generic_data' not found in /data/www/secure.idinfo.ch/shop/admin/fonctions.php on line 497
- dansmaregion
- Nouveau WRInaute
- Messages: 2
- Inscription: Mer Juin 08, 2005 12:24
roblescriso a écrit:alors j'ai fait:
$person=new person($id_ad_adresse,$database,$magic,$data, $nom,$prenom,$langue,$sexe,$dnaissance,$photo,$ididentite,$tcomcodes,$dentree,$dsortie);
et mnt j'ai le message:
Fatal error: Class 'generic_data' not found in /data/www/secure.idinfo.ch/shop/admin/fonctions.php on line 497
pk c si compliqué? lol
là, suffit de traduire c'est que php n'a pas trouvé la classe generic_data
- roblescriso
- Nouveau WRInaute
- Messages: 33
- Inscription: Mer Avr 20, 2005 12:18
Fatal error: Call to a member function dbquery() on a non-object in /data/www/secure.idinfo.ch/shop/admin/fonctions.php on line 456
et dans la class il y a:
class magic{
var $database;
function magic($database)
{
$this->database=$database;
}
function getid($table_name)
{
$lastid = $this->database->dbquery("SELECT dernier_numero FROM db_sequence WHERE nom_table='$table_name'"); $lastid = $lastid[0][0];
$lastid++;
$this->database->dbquery("UPDATE db_sequence SET dernier_numero='$lastid' WHERE nom_table='$table_name'");
return($lastid); // Renvoi le dernier ID disponible pour la table
}
};
j'ai instancié toutes les classes alors pk il me donne ce message?
- roblescriso
- Nouveau WRInaute
- Messages: 33
- Inscription: Mer Avr 20, 2005 12:18
la classe qui contient dbquery est database et elle est dans la meme page que la class magic:
class database{
var $conn, // Connexion oracle
$numcolumns, // Nombre de colones du résultat de la dernière requête
$numrows, // Nombre d'élements fourni par la dernière requête
$blobsbind, // Tableau contenant les variables à lier
$stmt, // Variable d'emplacement
$debug; // Flag pour le déboguage (True affiche les messages d'erreur plus la requête SQL)
function add_blob($sql_varname, $data)
{
$max=sizeof($this->blobsbind);
$this->blobsbind[$max][0]=$sql_varname;
$this->blobsbind[$max][1]=$data;
}
function database($ora_user='IDINFO_xm1', $ora_password='IDINFO',$ora_connect_string='IDHEB')
{
$this->debug=false;
$this->dbconnect($ora_user, $ora_password, $ora_connect_string);
}
function dbconnect($ora_user, $ora_password, $ora_connect_string) // Fonction de connexion à une base de donnée Oracle
{
$this->conn=OCILogon($ora_user, $ora_password, $ora_connect_string);
}
function dbquery($query) // Exécution de la requête SQL
{
// Execute une requête SQL puis retourne un tableau avec le résultat (s'il y a lieu)
$i=0;
if(!($this->stmt=OCIParse($this->conn,$query))) // Vérification de la syntaxe (Si fausse, afficher l'erreur Oracle)
$this->show_errormsg($query);
if(sizeof($this->blobsbind)>0) // Si il y'a des liaison de variables à faire, créer les liaisons
do
{
$lobs[$i] = OCINewDescriptor($this->conn, OCI_D_LOB);
$mixedvar = &$lobs[$i];
OCIBindByName($this->stmt, ":" . $this->blobsbind[$i][0], $mixedvar, -1, OCI_B_BLOB);
$i++;
}
while(next($this->blobsbind));
if (!OCIExecute($this->stmt,OCI_DEFAULT))
$this->show_errormsg($query);
if (strtoupper(substr($query, 0, 6))=="SELECT")
{
// Récupération des données et de ces données dans une Array
$this->numcolumns = ocinumcols($this->stmt);
$this->numrows=0;
while(OCIFetchInto($this->stmt, $row, OCI_ASSOC))
{
for($column=1;$column<=$this->numcolumns;$column++)
if(ocicolumntyperaw($this->stmt, $column)==_BLOB_RAWTYPEID)
$result[$this->numrows][$column-1]=$row[ocicolumnname($this->stmt, $column)]->load();
else
$result[$this->numrows][$column-1]=$row[ocicolumnname($this->stmt, $column)];
$this->numrows++;
};
return($result);
}
else
{
// ECRITURE, MISE A JOUR, EFFACEMENT
$i=0;
if(sizeof($this->blobsbind)>0)
do
{
if(!$lobs[$i]->save($this->blobsbind[$i][1]))
$this->show_errormsg($query);
$i++;
}
while(next($this->blobsbind));
}
OCICommit($this->conn);
OCIFreeStatement($this->stmt);
}...
class database{
var $conn, // Connexion oracle
$numcolumns, // Nombre de colones du résultat de la dernière requête
$numrows, // Nombre d'élements fourni par la dernière requête
$blobsbind, // Tableau contenant les variables à lier
$stmt, // Variable d'emplacement
$debug; // Flag pour le déboguage (True affiche les messages d'erreur plus la requête SQL)
function add_blob($sql_varname, $data)
{
$max=sizeof($this->blobsbind);
$this->blobsbind[$max][0]=$sql_varname;
$this->blobsbind[$max][1]=$data;
}
function database($ora_user='IDINFO_xm1', $ora_password='IDINFO',$ora_connect_string='IDHEB')
{
$this->debug=false;
$this->dbconnect($ora_user, $ora_password, $ora_connect_string);
}
function dbconnect($ora_user, $ora_password, $ora_connect_string) // Fonction de connexion à une base de donnée Oracle
{
$this->conn=OCILogon($ora_user, $ora_password, $ora_connect_string);
}
function dbquery($query) // Exécution de la requête SQL
{
// Execute une requête SQL puis retourne un tableau avec le résultat (s'il y a lieu)
$i=0;
if(!($this->stmt=OCIParse($this->conn,$query))) // Vérification de la syntaxe (Si fausse, afficher l'erreur Oracle)
$this->show_errormsg($query);
if(sizeof($this->blobsbind)>0) // Si il y'a des liaison de variables à faire, créer les liaisons
do
{
$lobs[$i] = OCINewDescriptor($this->conn, OCI_D_LOB);
$mixedvar = &$lobs[$i];
OCIBindByName($this->stmt, ":" . $this->blobsbind[$i][0], $mixedvar, -1, OCI_B_BLOB);
$i++;
}
while(next($this->blobsbind));
if (!OCIExecute($this->stmt,OCI_DEFAULT))
$this->show_errormsg($query);
if (strtoupper(substr($query, 0, 6))=="SELECT")
{
// Récupération des données et de ces données dans une Array
$this->numcolumns = ocinumcols($this->stmt);
$this->numrows=0;
while(OCIFetchInto($this->stmt, $row, OCI_ASSOC))
{
for($column=1;$column<=$this->numcolumns;$column++)
if(ocicolumntyperaw($this->stmt, $column)==_BLOB_RAWTYPEID)
$result[$this->numrows][$column-1]=$row[ocicolumnname($this->stmt, $column)]->load();
else
$result[$this->numrows][$column-1]=$row[ocicolumnname($this->stmt, $column)];
$this->numrows++;
};
return($result);
}
else
{
// ECRITURE, MISE A JOUR, EFFACEMENT
$i=0;
if(sizeof($this->blobsbind)>0)
do
{
if(!$lobs[$i]->save($this->blobsbind[$i][1]))
$this->show_errormsg($query);
$i++;
}
while(next($this->blobsbind));
}
OCICommit($this->conn);
OCIFreeStatement($this->stmt);
}...
J'avais compris ...
Après si t'essaies pas ce qu'on te propose
Bon je t'explique, ta deux classes distinctes là magic et database, si dans magic tu accède à un méthode de database, même si elle est déjà instanciée, ca marchera pas, sauf si tu fais un extend ...
Après si t'essaies pas ce qu'on te propose
Bon je t'explique, ta deux classes distinctes là magic et database, si dans magic tu accède à un méthode de database, même si elle est déjà instanciée, ca marchera pas, sauf si tu fais un extend ...
- roblescriso
- Nouveau WRInaute
- Messages: 33
- Inscription: Mer Avr 20, 2005 12:18
ah dsl mais c quoi un extend?? 
- roblescriso
- Nouveau WRInaute
- Messages: 33
- Inscription: Mer Avr 20, 2005 12:18
mais je l'ai deja utilisé comme ça et ça marche ailleurs.. 
- roblescriso
- Nouveau WRInaute
- Messages: 33
- Inscription: Mer Avr 20, 2005 12:18
et tu pourrais me donner un exemple? car je ne sais pas comme on utilise ce "extend"
13 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par Julien Coquet, expert certifié officiellement par Google Analytics.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Intégrer un flux RSS sur son site
- Orange Favoris, pour mémoriser et partager en ligne ses sites préférés
- Google Health : votre dossier médical géré par Google...
- Windows Live Toolbar Beta
- MyMaps : des cartes personnalisées avec Google Maps
- Google Desktop 2 en français
- Le positionnement d'annonces AdSense : explications
- Google API : guide de développement de l'API Google
- Outil de référencement SEO Playground Tool
- Voici comment désactiver les suggestions Google (Google Suggest)
- insertion dans un champs Mysql de type BLOB
- objet social
- objet non-identifié
- PHP objet: questions!
- objet attendu avec IE
- Activation d'un son sur un objet
- Les avantages de la programmation orientée objet
- Quand utiliser du PHP Objet ?
- Programmation orientée objet en PHP5
- Objet flash image de fond
- Revendre un objet et numéro surtaxé.
- erreur syntaxe et objet attendu en php
- google et la programation orienté objet
- Enregistrer la télévision
- Avis sur site (objet pub, multilangues)
Qui est en ligne
Utilisateurs parcourant ce forum: Atma et 0 invités



le forum