probleme select insert

Invité
Invité n'ayant pas de compte PHPfrance

26 mars 2008, 17:57

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

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

26 mars 2008, 18:16

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.
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 8 Messages

26 mars 2008, 19:17

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 ;)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

26 mars 2008, 19:48

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 ...
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Invité
Invité n'ayant pas de compte PHPfrance

27 mars 2008, 10:19

merci beaucoup, je me souvenais plus de cette syntaxe, cela fonctionne correctement de cette manière.

merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

27 mars 2008, 11:53

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 !!! ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...