2016-08-15 4 views
0

이전에 내 쿼리가 정상적으로 작동하고있었습니다. 나는 보통 mysql을 사용하지만 최근에는 godaddy를 통해 사전 구성된 vps로 변경되었습니다. 어제 밤에 PDO를 통해 내 서버에 연결하려고했는데 연결이 설정되었음을 보여줍니다.PDO 쿼리 결과가 표시되지 않습니다.

다음을 나는 테이블에서 데이터를 사용하여 선택하려고했다 :이 모든 내 웹 사이트에 표시

global $conn; 
$sql = "SELECT name FROM suppliers"; 
$stm = $conn->prepare($sql); 
$stm->execute(); 
return $stm->fetch(); 

가 연결에 성공, 배열

을 그것은 어떤 배열 정보 또는 아무것도 표시되지 않습니다, 단어 "배열". 테이블에 정보가 있으므로 결과를 표시해야합니다. 내가 뭘 잘못하고 있는지 알 겠어?

+1

당신이 당신에게 문자 단어'Array'을 제공하는 배열을 인쇄하려고하고 있습니다. 그래서 ... 그러지 마. print_r, var_dump, foreach 등 ... –

+1

또한 어떻게 사용하고 계십니까? 나는 당신이이 방법으로 첫 번째 행만을 가질 것이라고 생각합니다. 나는'fetchAll'을 사용하거나'fetch'를'while'에 넣고 필요한 모든 데이터를 가진 배열을 만듭니다. – chris85

+0

@ chris85 네, 맞습니다. 고맙습니다. 한 동안 진술서에 넣으면 효과가있었습니다. –

답변

1

배열을 반향하기 때문에 Array이 표시됩니다. Fetch 배열을 반환

PDO :: FETCH_BOTH (기본값) : 열 이름과 결과에 반환 0 인덱스 열 번호가 모두 당신이를

쿼리하는 집합입니다 색인 배열을 반환 전체 테이블 당신은 아마 모든 결과를 원할 것이므로 fetch을 루프시키고 그 배열을 반환해야합니다.

$sql = "SELECT name FROM suppliers"; 
$stm = $conn->prepare($sql); 
$stm->execute(); 
while($row = $stm->fetch()) { 
    $returned_array[] = $row['name']; 
} 
return $returned_array; 

그런 다음 여기를 반복하여 모든 공급 업체 이름에 사용하십시오.

foreach(function_call_for_names() as $name) { 
    echo $name; 
} 

다른 방법으로, 당신은 PDO fetchAll 기능을 사용할 수 있습니다,

$sql = "SELECT name FROM suppliers"; 
$stm = $conn->prepare($sql); 
$stm->execute(); 
return $stm->fetchAll(); 

다음

foreach(function_call_for_names() as $row) { 
     echo $row['name']; 
} 
관련 문제