2012-06-26 2 views
0

mysql 쿼리에서 행을 선택하고 PDO를 사용하여 변수에 저장하려면 어떻게해야합니까? 이전에 나는 지금 내가 PDOStatement::fetch()mysql_fetch_array에 대안하지만 난 그것을 사용하는 방법을 알아낼 수없는 PHP 매뉴얼에서 읽을이mysql 쿼리에서 행을 선택하고 변수에 저장

$row = mysql_fetch_array($result); 

    $ID = $row['ID']; 

처럼했다. 이것은 당신이 결과의 요소를 검색 할 객체 표기법을 사용해야합니다 내가 시도하지만 PDO::FETCH_OBJ를 사용하고 있다면 분명히이

<?php 
include 'config.php'; 

$sql = "select * from table1"; 

try { 
    $dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass); 
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $stmt = $dbh->query($sql); 
    $result = $stmt->fetchAll(PDO::FETCH_OBJ); 
    $dbh = null; 
    echo '{"items":'. json_encode($result) .'}'; 
} catch(PDOException $e) { 
    echo '{"error":{"text":'. $e->getMessage() .'}}'; 
} 

$row = $stmt->fetchAll(PDO::FETCH_OBJ); 
    $ID = $row['ID']; 


?> 

답변

0

를 작동하지 않는 것입니다. fetchAll() 메소드를 이미 호출 했으므로 더 이상 데이터에 액세스 할 수 없으므로 나중에 다른 fetch/fetchAll 메소드를 호출 할 수 없습니다. $row = $stmt->fetchAll(PDO::FETCH_OBJ); 대신에

, 이전에 fetchAll() 수익을했다 $result 변수를 반복하는 것은 :

foreach($result as $row) 
{ 
    $ID = $row->ID; 
    // Etc... 
} 
+0

나는 그것이 나에게'정의되지 않은 변수를 오류 제공 $ ID 에코하려고 :' – user1323294

+0

을 user1323294 @를 제거하기 '$ result = $ stmt-> fetchAll (PDO :: FETCH_OBJ);'의'try' 블록에있는 줄. 이유는'fetchAll()'이후의 데이터에 접근 할 수 없기 때문이다. –

+0

하지만'$ result = $ stmt-> fetchAll (PDO :: FETCH_OBJ);을 취하면'null '을'json_encode ($ result)'로 표시합니다. 맞습니까? 내 게시물의 코드를 전체 샘플로 제공해 주실 수 있습니까? – user1323294

관련 문제