Bonsoir,
Je suis toujours en recherche de solution. Si quelqu'un à une idée de solution je suis toujours preneur !!
Bonne soirée
Bonjour à tous,
Aprés scrapper des données je souhaite les inserer dans ma bdd. Du coup je récupère tout une ligne de donné qui contient mes 9 champs de ma table. Lors que j'execute le code j'ai une erreur : Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe prs de ''.Array.''
Voici mon code
Je ne sais pas si j'en suis loins. Si vous pouvez m'aider j'en serai ravi.
Merci d'avance, bonne soirée.
Bonsoir,
Je suis toujours en recherche de solution. Si quelqu'un à une idée de solution je suis toujours preneur !!
Bonne soirée
la solution tu l'as trouvé dans ton dernier post.
On va dire une partie car j'arrives pas à faire ma requête !!
qu'elle est ton nouveau code ?
Bonsoir,
J'ai essayé ça mais ça ne fonctionne pas non plus :
Bonsoir,
Fait un echo de $rqt juste avant le prepare, tu vas voir ta 1ère erreur
ensuite, il manque les marqueurs dans la requete. (cf la doc de la méthode prepare)
Bonsoir,
Si je fait un echo de $rqt avant le prepare ça me met : Array , Array, Array, Array, Array, Array, Array, Array, Array
Et j'ai regardé les marqueurs de la méthode prepare et je vois pas !!
donc $svc[0] est un array et non un string
tu ne les vois les marqueurs pas car il n'y en a pas
$rqt avant le prepare devrait contenir la requête complète et non seulement la ligne précédende. Car tu ne fais pas de concaténation mais écrase chaque ligne.
Si je fais un var_dump($csv[0]) j'ai un array avec toute la ligne de donnée mais si je fais var_dump($csv[0][0]) là j'ai bien un string avec juste la donnée
et tu n'as toujours pas vu que le écho de ta requête n'affiche pas cette dernière en entier ?
tu as été lire la doc de la méthode prepare ?
Oui je suis allé lire la doc, je suis dessus (https://www.php.net/manual/fr/pdo.prepare.php)
tu ne réponds pas à ma 1ère question
et donc tu retrouves dans la doc, ce que tu as dans ton code avec les marqueurs ?
Bon tant pis j'arrive pas, peu être c'est pas possible comme ça ! je vais chercher autrement !! Merci de ton temps !!
si c'est possible, tu fais juste des erreurs.
Je ne donne pas la solution, mais t'indique des méthodes pour trouver les erreurs. Ceci afin de t'aider à progresser
Bon je vais essayer de ne pas me décourager.
"et tu n'as toujours pas vu que le écho de ta requête n'affiche pas cette dernière en entier ?"
Si je fais un echo sur $rqt, j'ai les marqueurs qui s'affiche (?).
Est ce que dans un premier temps, c'est normal que ça m'affiche ça ? Sur la doc ça met ça "$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)");"
Si je met que des ? cela m'affiche aussi des ?
Je début et c'est un peu poussé pour moi !!
comme tu ne fais pas de concaténation, tu écrases à chaque fois ce que tu écris dans $rqt
du coup ta requête n'est pas complète. il te manque le début.
Bonjour,
j'ai du mal avec le mot concaténation. Est ce que ça veux dire mettre dans une variable ? comme ci-dessous
non, cela veut dire assembler.
je t'invite a revoir les bases du php.
Sa y est j'ai réussi en faisant ça :
et tu peux même améliorer en sortant les 3 lignes avant le "execute" de la boucle for
car le but d'une requête est aussi de ne pas la préparer à chaque fois. et tu n'auras qu'une instance de pdo et non autant de ligne que dans ton fichier
Si je sors avant il n'y a que la derniere ligne dans ma bdd !!
montre ton code, stp
Et si je ferme mon for avant $pdo j'ai juste la derniere ligne dans ma bdd.
ce n'est pas ce que j'ai dit.
sortir avant le for seuleme les 3 lignes qui précéde le "execute"
Ok merci c'est bon, tout fonctionne !!