2012-12-18 2 views
2

mysql 데이터베이스의 내용을 출력하려고하는데 오류를 사용하는 방법에 관계없이 여기에 지금 사용중인 코드가 있습니다.PDO - foreach()에 잘못된 인수가 제공되었습니다.

try 
{ 
    $dbh = new PDO("mysql:host = $hostname; dbname = kzkcubcy_webDev", $username, $password); 
    /*** echo a message saying we have connected ***/ 
    echo 'Connected to database<br />'; 

    /*** The SQL SELECT statement ***/ 
    $sql = "SELECT * FROM animals"; 
    foreach ($dbh->query($sql) as $row) 
    { 
     print $row['animal_type'] .' - '. $row['animal_name'] . '<br />'; 
    } 

    /*** close the database connection ***/ 
    $dbh = null; 
} 
catch(PDOException $e) 
{ 
    echo $e->getMessage(); 
} 
?> 

그 출력은 오류 "경고 : 라인 (21) 상에 /home/kzkcubcy/public_html/index.php의 foreach()에 대한 공급 잘못된 인수"

및 라인 (21)이고; "foreach ($ dbh-> query ($ sql) $ 행)". 이 작업을 수행하는 데 너무 많은 다른 방법을 피곤하게했지만 자습서에서 단어를 복사해도 작동하지 않는 것 같습니다.

+2

오류 모드를 예외로 설정하지 마십시오. 어떤 종류의 쿼리에 아마도 오류가 있다고 생각하기 때문에 그렇게 해보십시오. –

+0

가능한 중복 인수 [foreach()] (http://stackoverflow.com/questions/7490577/invalid-argument-supplied-for-foreach) – Jocelyn

답변

5

변화

$dbh = new PDO("mysql:host = $hostname; dbname = kzkcubcy_webDev", $username, $password); 

$dbh = new PDO("mysql:host=$hostname;dbname=kzkcubcy_webDev", $username, $password); 

에 난 당신이 DSN 필드에 공간을 가질 수 있다고 생각하지 않습니다.

+0

당신은 나를 놀리는 거예요, 그게 유일한거야 나는 그 오류를 일으킬 것으로 기대하지 않았다! 고마워요. – user1725794

관련 문제