IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Que veut dire :variable ? [Oracle]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 497
    Par défaut Que veut dire :variable ?
    Bonjour,

    Dans un code que je suis entrain d'analyser il y a une fonction avec une requete sql sur une table oracle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function machin(){
    $query = 'SELECT truc  FROM ma table WHERE truc_id = :MYBLOBID';
    (...)
    }
    Je me demande comment il fait pour initialiser MYBLOBID? Je n'ai trouve nul part de myblobid = quelque chose. En plus ce n'est pas une variable php sinon on aurait eu $ alors que ce que c'est?

    D'avance merci...

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Par défaut
    C'est soit une erreur, soit cette requete est utilisé avec une couche d'abstraction pour la base de données. Essaye de vérifier.

  3. #3
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    On dirait la syntaxe d'une requête SQL dans un code Delphi ?

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 497
    Par défaut
    Non non c'est bien du php et une base oracle

    Sinon pour etre plus detaille
    dans mon code j'ai deux fonctions:
    la premiere ce contente de faier un select et de me renvoye un id
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function recupid($a,$b,$c_id)
    $sql = "SELECT mon_id from matalbe WHERE
    			col1='".$a."' 
    			AND col22='".$b."'  
    			AND ref_id =".$c_id;
     
    	$stmt = oci_parse ($conn, $sql);
    	$r =oci_execute($stmt, OCI_COMMIT_ON_SUCCESS);
    (...)
    return $monid;
    et dans la deuxieme fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    function get_tsr_lob($id,$cert_id)
    {
    	$conn = $_SESSION['dbconn'];
    	$query = 'SELECT truc  FROM ma table WHERE truc_id = :MYBLOBID';
     
    	$stmt = oci_parse ($conn, $query);
    	oci_bind_by_name($stmt, ':MYBLOBID', $id);
    	oci_execute($stmt, OCI_DEFAULT);
    	$arr = oci_fetch_assoc($stmt);
     
    	$tmpfile = TEMP_DIR.$cert_id.$id.'.tsr';
    	$result = $arr['TSR']->export($tmpfile);
    	oci_free_statement($stmt);
     
    	if($result)
    	{
    (...)
    	}
    	else
    	{
    		echo "3";
    		add_status($cert_id,"GET","ERROR");
    		exit;
    	}
    }
    La fonction marche bien c'est juste le :myblobid que je ne comprends pas . Comment ca marche ??? :s un objet peut etre????

    qu'entends tu par couche d'abstractino de la base batatax?

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 497
    Par défaut
    Le $monid renvoye par la premiere fonction est bien le $id recu par ma seconde fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $info = get_token_info($a,$b,$c_id);
    get_tsr_lob($info,$c_id);

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 497
    Par défaut
    ALors en fait c'est initialise 2 lignes plus loin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oci_bind_by_name($stmt, ':MYBLOBID', $id);
    merci pour les reponses

  7. #7
    Membre éclairé Avatar de bannik
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2003
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2003
    Messages : 191
    Par défaut
    Bonjour,

    Il s'agit d'une variable PL/SQL.
    En PL/SQL d'oracle, une variable est déclaré avec : devant.

    Le ociBindByName sert a ratacher une variable Oracle à une variable PHP.

    Personnelement, je n'utilise cette méthode que pour récupérer un curseur oracle renvoyé par une fonction PL/SQL vers PHP, que je fetch ensuite.

    ce qui donne un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $curs = OCINewCursor($conn);
     
    $req="begin  :res := FONCTION_PL_SQL($variablephp1,$variablephp2,:cur); end;";
    	$stmt = OCIParse($conn,$req);
    	OCIBindByName($stmt,"cur",&$curs,-1,OCI_B_CURSOR);
    	OCIBindByName($stmt,":res",&$arg1,10000);
     
    	ociexecute($stmt);
    	ociexecute($curs);
     
    	while (OCIFetchInto($curs,&$data)) {
                    etc...
    Ce qui a pour effet :
    - Créer un curseur PHP
    - Créer le code PL/SQL d'execution de la requete
    - 'Parser' la requete
    - Relier le curseur et le retour de la fonction à deux varibles PHP
    - Executer la requete
    - Ensuite de 'fetcher' le curseur (comme pour un tableau)

  8. #8
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 497
    Par défaut
    reponse claire et precise merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AS] Que veut dire AND
    Par jbidou88 dans le forum Flash
    Réponses: 2
    Dernier message: 31/05/2006, 11h21
  2. que veut dire (nrow >= 6) && (~nrow&0x01)
    Par gronaze dans le forum C
    Réponses: 12
    Dernier message: 24/03/2006, 15h00
  3. [WD9] Que veut dire AGL?
    Par afrikha dans le forum WinDev
    Réponses: 4
    Dernier message: 24/10/2005, 11h15
  4. Que veut dire ce symbole?
    Par tlemcenvisit dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 24/06/2005, 22h25
  5. Que veut dire "volatile" devant une variable ?
    Par altahir007 dans le forum C
    Réponses: 4
    Dernier message: 23/06/2004, 15h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo