PHP - Oracle - create table - PHP - Programmation
Marsh Posté le 27-03-2006 à 10:35:57
Code :
|
Heu le " au début de ma chaine ça correspond a "
C'est remplacé automatiquement apparemment...
Marsh Posté le 27-03-2006 à 14:31:57
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...
Marsh Posté le 27-03-2006 à 15:51:26
rufo a écrit : Je verrais plutôt : Pour rappel, une chaîne entre quotes ne permet pas d'interpréter les variables à l'intérieure alors qu'entre guillemets si... |
Marsh Posté le 27-03-2006 à 15:57:26
$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))';
Marsh Posté le 27-03-2006 à 16:28:16
Woutcha a écrit : $query_test = "create table "$id_ses" (test varchar2(40))"; ca ne peut pas marcher... |
Malheureusement, ces syntaxes ne fonctionnent pas (je pense qu'elles fonctionnent lorsqu'on utilise MySQL).
Juan
Marsh Posté le 27-03-2006 à 16:45:30
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?
Marsh Posté le 27-03-2006 à 17:20:39
Woutcha a écrit : La syntaxe est bien la bonne pour creer une table sous oracle... |
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
Marsh Posté le 27-03-2006 à 17:45:57
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é.
Marsh Posté le 27-03-2006 à 17:51:48
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"? |
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;
}
Marsh Posté le 29-03-2006 à 09:15:52
si tu fais
Code :
|
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 :
|
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 :
|
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.
Marsh Posté le 26-03-2006 à 18:41:58
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