Insertion multiple

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Insertion multiple

Re: Insertion multiple

par sirakawa » 19 mars 2012, 09:12

Affiches la variable résultante de la construction de la requête. Cela nous donnera déjà un peu plus d'idée sur sa tête. ;)
a raison à la puissance infini positif.
Comme je cains que xTG prêche dans le désert, je m'autorise à expliciter;
foreach($mailExp as $k=>$v)
 {
                       
              $insertValues .= '('.$connexion->quote($v,PDO::PARAM_STR).'),';
 }
 //ajouter (pourquoi ==><==? systématique de ma part pour voir s'il ne traîne rien avant ou après.)
print"<br/>==>$insertValues<==";

Re: Insertion multiple

par rimie » 19 mars 2012, 08:10

je vais echapper cette methode pour quelques jours, et je re sur elle, merci xTG

Re: Insertion multiple

par xTG » 14 mars 2012, 17:09

Affiches la variable résultante de la construction de la requête. Cela nous donnera déjà un peu plus d'idée sur sa tête. ;)

Re: Insertion multiple

par rimie » 14 mars 2012, 14:44

y a t il une idee?

Re: Insertion multiple

par rimie » 13 mars 2012, 04:16

j'ai change par -1, je voudrais eliminer le "," et mettre ";" a sa place
$insertValuesList = substr($insertQuery, 0,-1);

Re: Insertion multiple

par xTG » 12 mars 2012, 14:18

On voit tout de suite qu'il manque la parenthèse fermante non ?
Et le problème se situe ici :
$insertValuesList = substr($insertQuery, 0,-2);

Re: Insertion multiple

par rimie » 12 mars 2012, 13:45

je recois cette erreur:
INSERT INTO mailinglist('[email protected]';<br /><br />
<b>Warning</b>: PDO::query() [<a href='pdo.query'>pdo.query</a>]: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''[email protected]'' at line 1 in email.php on line <b>312</b><br />
foreach($mailExp as $k=>$v)
			{
			
				$insertValues .= '('.$connexion->quote($v,PDO::PARAM_STR).'),';
			}

Re: Insertion multiple

par xTG » 12 mars 2012, 10:46

Bah oui...
C'est quoi ça ?
$insertMailList = '\"'.$insertMailList.'\"';
Une requête SQL n'est pas entouré de double quote. ;)

Et vu que tu utilises PDO::query() il faut protéger tes données injectées.
Donc utilises PDO::quote() sur $v.

Insertion multiple

par rimie » 12 mars 2012, 10:29

Bonjour,

j'ai une liste des emails sous la forme: [email protected], [email protected], ... et je voudrais les inserer dans ma table:
<?php

   		$mailsList = preg_replace('/\s/', '', $Email);
   		$mailExp = explode(',', $mailsList);
   		
   		$insertQuery = 'INSERT INTO mailinglist';
	
			$insertValues = '';
			
			foreach($mailExp as $k=>$v)
			{
				$insertValues .= '('.$v.'), ';
			}
				
			$insertQuery .= $insertValues;
						
			$insertValuesList = substr($insertQuery, 0,-2);
						
			$insertMailList = $insertValuesList.';';
			$insertMailList = '\"'.$insertMailList.'\"';
			
			echo $insertMailList.'<br />';
		 	$InsertMailsReq = $connexion->query($insertMailList);
		   		

?>
j'ai essaye plusieurs methode, ca me retourne differente erreurs, comme:
to use near '\"INSERT INTO mailinglist
merci pour votre aide