Page 1 sur 1

INSERT INTO qui oubli des lignes ?!

Posté : 18 oct. 2015, 00:30
par Kaolin
Bonjour la communauté ;)

Je post car je rencontre un léger soucis sur une commande INSERT INTO et j'avoue que je sèche là !
Lorsque j’exécute ma requête, il me manque des lignes à l'arrivée (même à écrire ça me semble impossible mais bon)

Le code :

Code : Tout sélectionner

$query= "select * from xxx ORDER by nom ASC"; $result=$pdo->query($query); while ($row = $result->fetch()) { $queryinsert="insert into yyy values ('','XXXXXX','".$row['aaa']."','".$row['bbb']."','".$row['ccc']."','".$row['ddd']."','".$row['eee']."','".$row['fff']."','".$row['ggg']."','".$row['hhh']."','','','".$row['iii']."','".$row['jjj']."','".$row['kkk']."','".$row['lll']."','".$row['mmm']."')"; $pdo->query($queryinsert); echo "".$row['XXXXXX']." => OK<br />"; }
En gros pour faire simple, je récupère bien tout (toute la liste s'affiche bien sur ma page web grâce au echo) mais je n’insère pas tout (sur 450 entrées à transférer, j'en récupère 305 dans la bdd). Pourtant mon echo étant après ma requête, ce que je vois dans la liste sur la page devrait être aussi transféré dans ma bdd ?

Merci pour votre aide si vous avez des idées

Re: INSERT INTO qui oubli des lignes ?!

Posté : 18 oct. 2015, 00:59
par or 1
certaines lignes contiennent des ' et pas d'autres.
les lignes avec ' aboutissent à une requete invalide.

Re: INSERT INTO qui oubli des lignes ?!

Posté : 18 oct. 2015, 01:01
par Kaolin
Merci de ta réponse, effectivement je n'avais pas du tout pensé à ça !

Comment je peux résoudre ce soucis du coup ?
J'imagine qu'il faut que je protège les ' mais comment ?

Re: INSERT INTO qui oubli des lignes ?!

Posté : 18 oct. 2015, 01:29
par Kaolin
Je m'en suis partiellement sorti avec un addslashes() mais j'en ai encore une dizaine qui ne veulent pas être transférés...

Je continu à fouiller si quelqu'un a des idées ;)

EDIT : Je n'ai rien dit, j'ai juste mal compté (il est tard :D )

Merci pour m'avoir aiguiller et bonne soirée

Re: INSERT INTO qui oubli des lignes ?!

Posté : 18 oct. 2015, 08:34
par @rthur
Je m'en suis partiellement sorti avec un addslashes() mais j'en ai encore une dizaine qui ne veulent pas être transférés...
Bonjour Kaolin,

Plutôt que addslashes, il est préférable d'utiliser pdo_quote qui sert justement à cela :
http://php.net/manual/fr/pdo.quote.php