2010-04-14 4 views
2

mysql db에서 확인하는 문자열을 작성하고 있습니다.PHP mysql 쿼리 문자열 배열

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)" 
나는이를 가질 수 있도록 배열 문자열을 작은 따옴표 및 배열에 쉼표를 추가 할 것입니다

: "내 테이블에서 선택 * 여기서 ('문자열 1', '문자열 2'에서 아이디 ' string3 ') "

나는 배열 implode를 사용해 보았지만 어떤 아이디어도 없었습니까? 감사

답변

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

당신을 감사합니다! 매력처럼 작동합니다. – NULL

+0

정말 잘 작동합니다! 나는 물음표를 던지고 싶다. 점들이 정확히 무엇을하고 있나, 내파 결과와 따옴표를 붙이기 위해 "+"같이 행동하고 있는가? – deckoff

+0

@deckoff Exacly. – hsz

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

이것은 문자열의 시작과 끝 앞뒤에 따옴표를 추가하지 않습니다. 어쨌든 고마워요! – NULL

+0

@ Chocho 당신도 연결을 모르십니까? 그런 다음 기본 PHP 클래스가 필사적으로 필요합니다. –

1

implode() 솔루션입니다하지만 당신은 탈출 데이터에 대해 잊지한다 :

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

감사합니다. 답변도 작동합니다! – NULL