Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
634 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  PHP - Oracle - create table

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

PHP - Oracle - create table

n°1332544
juanito64
Posté le 26-03-2006 à 18:41:58  profilanswer
 

Slt,
 
Mon problème est simple : je souhaite créer une table Oracle en PHP sachant que le nom de la table est une variable (id_session)
 
$id_session = "test";  
 
J'ai essayé plusieurs syntaxes mais rien n'y fait :
 
$query_test = 'create table '$id_ses' (test varchar2(40))';
 
$query_test = 'create table "$id_ses" (test varchar2(40))';
 
...
 
Qqun peut-il m'aider sur la syntaxe à employer ?
 
Merci d'avance,
 
Juan

mood
Publicité
Posté le 26-03-2006 à 18:41:58  profilanswer
 

n°1332730
Yertle
Posté le 27-03-2006 à 10:35:57  profilanswer
 

Code :
  1. $query_test = "create table ".$id_ses." (test vrachar2(40))";


Heu le " au début de ma chaine ça correspond a "
C'est remplacé automatiquement apparemment...

n°1332848
rufo
Pas me confondre avec Lycos!
Posté le 27-03-2006 à 14:31:57  profilanswer
 

Je verrais plutôt :
$query_test = "create table "$id_ses" (test varchar2(40))";
 
Pour rappel, une chaîne entre quotes ne permet pas d'interpréter les variables à l'intérieure alors qu'entre guillemets si...

n°1332901
juanito64
Posté le 27-03-2006 à 15:51:26  profilanswer
 

rufo a écrit :

Je verrais plutôt :
$query_test = "create table "$id_ses" (test varchar2(40))";

 

Pour rappel, une chaîne entre quotes ne permet pas d'interpréter les variables à l'intérieure alors qu'entre guillemets si...

 

n°1332905
Woutcha
Posté le 27-03-2006 à 15:57:26  profilanswer
 

$query_test = "create table "$id_ses" (test varchar2(40))"; ca ne peut pas marcher...
 
c'est :
 
$query_test = "create table \"$id_ses\" (test varchar2(40))";
ou
$query_test = 'create table "'.$id_ses.'" (test varchar2(40))';

Message cité 1 fois
Message édité par Woutcha le 27-03-2006 à 16:01:29
n°1332946
juanito64
Posté le 27-03-2006 à 16:28:16  profilanswer
 

Woutcha a écrit :

$query_test = "create table "$id_ses" (test varchar2(40))"; ca ne peut pas marcher...
 
c'est :
 
$query_test = "create table "$id_ses" (test varchar2(40))";
ou
$query_test = 'create table "'.$id_ses.'" (test varchar2(40))';


 
 
Malheureusement, ces syntaxes ne fonctionnent pas (je pense qu'elles fonctionnent lorsqu'on utilise MySQL).
 
Juan

n°1332959
Woutcha
Posté le 27-03-2006 à 16:45:30  profilanswer
 

La syntaxe est bien la bonne pour creer une table sous oracle...
 
As-tu un message d'erreur?
As-tu fais un print $query_test pour verifier que tu avais bien
la chaine attendue?

n°1332998
juanito64
Posté le 27-03-2006 à 17:20:39  profilanswer
 

Woutcha a écrit :

La syntaxe est bien la bonne pour creer une table sous oracle...
 
As-tu un message d'erreur?
As-tu fais un print $query_test pour verifier que tu avais bien
la chaine attendue?


 
 
Je viens de tester les 2 syntaxes :
 
1)$create_pws_prepro_sc = "create table "$id_ses" (test varchar2(40))";  
 
J'ai une fenêtre blanche et rien ne se passe : la table n'est pas créee
 
 
2)$create_pws_prepro_sc = 'create table "'.$id_ses.'" (test varchar2(40))';
 
Pas d'erreur, voici le print de $create_pws_prepro_sc  
 
create table "pws_tmp_61435619" (test varchar2(40))
 
mais la table n'est toujours pas créee.
 
Merci pour ton aide
 
Juan

n°1333020
omega2
Posté le 27-03-2006 à 17:45:57  profilanswer
 

juanito64 > Est ce que t'as bien exécuté la requette aprés l'avoir mise dans "$create_pws_prepro_sc" ? En bref, c'est quoi le reste du code où tu utilise ton "$create_pws_prepro_sc"?
 
Si tu t'es contenté de la ligne au dessus sans riend de plus, alors c'est normal que rien ne se soit passé.

n°1333025
juanito64
Posté le 27-03-2006 à 17:51:48  profilanswer
 

omega2 a écrit :

juanito64 > Est ce que t'as bien exécuté la requette aprés l'avoir mise dans "$create_pws_prepro_sc" ? En bref, c'est quoi le reste du code où tu utilise ton "$create_pws_prepro_sc"?
 
Si tu t'es contenté de la ligne au dessus sans riend de plus, alors c'est normal que rien ne se soit passé.


 
omega2,
 
Le code de la page est assez long mais j'ai bien exécuté la requête :  
 
$create_pws_prepro_sc = 'create table "'.$id_ses.'" (test varchar2(40))';
 
 
echo $create_pws_prepro_sc ;
 
                                     
$sth_pws_prepro_sc = oci_parse($conn, $create_pws_prepro_sc);
if (!$sth_pws_prepro_sc) {
$e = oci_error($conn);
print htmlentities($e['message']);
exit;
}
 
 
 
$results_pws_prepro_sc = oci_execute($sth_pws_prepro_sc, OCI_DEFAULT);
if (!$results_pws_prepro_sc) {
$e = oci_error($sth_pws_prepro_sc);
print htmlentities($e['message']);
exit;
}

mood
Publicité
Posté le 27-03-2006 à 17:51:48  profilanswer
 

n°1334355
Yertle
Posté le 29-03-2006 à 09:15:52  profilanswer
 

si tu fais
 

Code :
  1. $sql = "create table "'.$sess_id.'" (test varchar2(40))";


 
tu ouvres les guillemets, tu les fermes puis tu les rouvres en simple
quote et tu place ta variable et tu les refermes et tu rouvres une
chaine en double quote, c'est pas normal ya pas de concaténation.
 

 


j'ose supputer que la syntaxe voulue était celle la :
 

Code :
  1. $sql = "create table '".$sess_id."' (test varchar2(40))";


 
là les simples quotes sont avant la fin des double, et apres la
variable la simple quote et refermée apres le début de la fin de la
chaine
 
les simples quotes sont donc interprétées comme du texte et non comme l'ouverture/fermeture d'une chaine
 
tu auras donc $sql qui vaut "create table 'valeur contenue dans ta sess_id' (test varchar2(40))"
 

 


Ceci dit il ne doit pas y avoir de quotes autour du nom de la table
lors de sa création donc la syntaxe qu'il faut est celle que j'ai
donnée plus haut : tu ouvres une chaine en double quotes tu la refermes
avant la variable, ti concatène ta variable tu rouvres les doubles
quotes et tu fini :
 

Code :
  1. $sql = "create table ".$sess_id." (test varchar2 (40))";


 
Ainsi ta variable se trouve en dehors des quotes et ne sera donc pas interprétée comme une chaine mais bien comme une variable.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  PHP - Oracle - create table

 

Sujets relatifs
XSLT+PHP sous windows possible ?fonction PHP images
Un bon bouquin PHP OBJET[ Résolu ] Passage de variable PHP > Flash
Génération d'un mail avec pièce jointe en PHPCopier et créer enregistrements dans table Access
[PHP] *Resolu * Problème de chemin avec les "include"Alert et variable PHP
Extraction/Insertion de donnée XML dans une base de donnée de Oracle[PHP][resolu] prob pour l'ajout de photo
Plus de sujets relatifs à : PHP - Oracle - create table


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR