2013-08-19 2 views
0

은 모두 잘 작동하지만 내가 절 select * from users Where key IN ($my_keys_array)에 의해 기록을 얻을 때 바로 첫 번째 레코드를 검색합니다. 카산드라-PDO 또는 어디 틀렸다에 문제가있는 경우

$query = "SELECT * FROM questions WHERE user_id = 'mikko' AND question_id IN ('Question 1','Quesiton 2')"; 
$stmt = $this->db->prepare($query); 
$stmt->execute(); 
$res = $stmt->fetch(PDO::FETCH_ASSOC); 
echo json_encode($res); 

누가 알겠습니까?

나는 cqlsh> 프롬프트가 같은 문장을 시도하고 잘 작동합니다.

미리 도움을 청하십시오.

+0

'$ my_keys_array' _ PHP 배열의 경우 SQL을 이해할 수있는 것으로 변환해야합니다. 시도해보십시오 :' " '". implode (" ','", $ my_keys_array). 대신에. 이것이 행할 일은 다음과 같이 배열의 요소를 결합하는 것입니다 : "One", "Two", "Three"그리고 기본적으로 작동해야합니다. 그래서 쿼리는 다음과 같습니다 ''SELECT * 사용자로부터 키 IN WHERE (' ". 내파 (' ',' ', $의 my_keys_array)."') "' – ninty9notout

+0

나는 심지어 내가 * FROM"보내기를 선택하려고 것을 시도 질문 WHERE USER_ID = '미코'AND IN ('질문 1', '질문 2') question_id "하지만하지 않습니다 작품 ...이 확실히 작동하지만, 이것은 자신의 현재 코드하지 않는 이유를 설명하기 위해 아무것도하지 않는다 – jezuz

답변

1

결과 집합에서 하나의 행만 가져 오는 동안 모든 행을 가져 오려면 $stmt->fetch() 대신 $stmt->fetchAll()을 실행해야합니다.

btw. 살펴볼 수있는 좋은 곳, API를 사용하는 방법은 항상 테스트입니다. 이것들은 상당히 많은 정보를 제공 할 수 있습니다. https://github.com/Orange-OpenSource/YACassandraPDO/tree/master/tests.

는 또한 fetchfetchAll의 PDO 설명서를 확인할 수 있습니다.

+0

. 이 대답에 대해 자세히 설명해야합니다. –

+0

LOL !!! 당신은 아주 맞습니다 ... 고맙습니다. !!! – jezuz

+0

나는이 차이를 몰랐다, 대단히 감사합니다! – jezuz

1

현재 만 결과 세트에서 단일 행을 가져 오는 있습니다. 결과 집합의 모든 결과를 얻으려면 루프에서 가져 오기를 실행해야합니다.

$result_array = array(); 
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
    $result_array[] = $row; 
} 
echo json_encode($result_array); 
+0

위대한, 당신은 rigth입니다! – jezuz

+0

감사합니다 ... – jezuz