2010-04-14 5 views
2

Je construis une chaîne que je vérifie dans mysql db.php mysql requête chaîne de caractères

eg: 
formFields[] is an array - input1 is: string1 
array_push(strings, formFields) 
1st string and mysql query looks like this: 
"select * from my table where id in (strings)" 

formFields[] is an array - input2 is: string1, string2 
array_push(strings, formFields) 
2nd string and mysql query looks like this: 
"select * from my table where id in (strings)" 

formFields[] is an array - input3 is: string1, string2,string3 
array_push(strings, formFields) 
3rd string and mysql query looks like this: 
"select * from my table where id in (strings)" 

j'aimerai ajouter des guillemets simples et une virgule au tableau afin que j'ai cela pour les chaînes de tableau: « select * de ma table où id dans (« string1 », « string2 », » string3 ') "

J'ai essayé d'utiliser l'implosion de tableau, mais toujours aucune idée? grâce

Répondre

6
'SELECT ... WHERE id IN ("' . implode('","', $strings) . '")'; 
+0

merci! fonctionne comme un charme. – NULL

+0

Fonctionne vraiment bien! Je veux poser une question, que font exactement les points, agissent-ils comme "+" pour coller les citations avec le résultat de l'implosion? – deckoff

+0

@deckoff Exacly. – hsz

0
implode("','",$array); 
+0

cela n'ajoute pas de citation avant et après le début et la fin des chaînes. Merci quand même! – NULL

+0

@Chocho vous ne connaissez pas la concaténation aussi? Vous avez désespérément besoin de classes PHP de base. –

1

implode() est la solution, mais vous ne devriez pas oublier échapper des données:

$data = array(...); 
array_walk($data, function(&$elem, $key) { 
    $elem = mysql_real_escape_string($elem); 
}); 
$sql = 'SELECT ... id IN ("' . implode('", "', $data) . '");'; 
+0

merci aussi, votre réponse fonctionne aussi! – NULL

Questions connexes