Page 1 sur 1

probleme select insert

Posté : 26 mars 2008, 17:57
par Invité
Bonjour,

Voila j'ai un souci, suite a une modification de table je dois tout transférer les enregistrements d'une table dans une autre, le souci c'est quelle n'est pas faite de la même manière. Donc je fais un select, puis je refais un insert avec les enregistrement que je souhaite. Le problème est que j'ai un champs ou certain enregistrements ont des apostrophes ou autre caractère spéciaux. Et il ne veux pas que je l'insert. J'ai essayer avec la fonction addslashes mais cela ne fonctionne pas de la manière dont je l'utilise. Auriez vous une idée ?

en faite je fais simplement
insert into table(champs1, champs2, champs3,...,champsN) values ('', $row[0], $row[1], $row[2],..., $row[N])


Merci

Posté : 26 mars 2008, 18:16
par Ryle
Modération :
Afin d'obtenir plus de réponses, le sujet est déplacé dans le forum "SQL & Bases de données".

Merci de prendre le temps de lire les règlements
ainsi que l'intitulé de chaque forum avant de poster un nouveau sujet.

Posté : 26 mars 2008, 19:17
par Fififox
Bonjour !
D'après ce que je vois, le problème vient du fait que les champs ne sont pas délimités (à moins que ce soit juste en recopiant pour le forum que tu l'aies oublié...):
au lieu de

Code : Tout sélectionner

values ('', $row[1], ..., $row[n])
il vaudrait mieux mettre

Code : Tout sélectionner

values ('', '$row[1]', ..., '$row[n]')
et bien sur avoir auparavent effectué un addslashes() pour que le contenu des variables n'interfère pas ;)

Posté : 26 mars 2008, 19:48
par zeus
Le sommum étant de faire
"values ('', '". $row[1] ."', ..., '". $row[n] .3')
Sinon, il existe la syntaxe

Code : Tout sélectionner

INSERT INTO table1(champ1, champ2) SELECT champ1, champ2 FROM table2 WHERE ...

Posté : 27 mars 2008, 10:19
par Invité
merci beaucoup, je me souvenais plus de cette syntaxe, cela fonctionne correctement de cette manière.

merci

Posté : 27 mars 2008, 11:53
par Ryle
Modération :
Puisque ta question est résolue, j'ajoute le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.

Tu peux réaliser cette opération toi-même
en cliquant sur le bouton Image qui s'affiche en haut à gauche de ce sujet
si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)