2013-02-19 4 views
1

나는이 오류가 계속 그런데 왜 모르겠어요은 .... 오류는 PDO 오류 캐치되지 않는 예외 SQLSTATE는 [HY000]

입니다

:

Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: 

General error' in test.php:25\nStack trace:\n#0 test.php(25): 

PDOStatement->fetch()\n#1 {main}\n thrown in test.php on line 25 

내 쿼리는 다음과 같이이다 :

$stmt = $pdo->prepare(" 

SELECT *,t1.id AS theID FROM users 
    t1 LEFT JOIN users_settings t2 
ON t1.id=t2.tid     
    INNER JOIN extra_settings t3 
ON t2.bid=t3.id"); 

try { 
    $stmt->execute(); 
} catch (PDOException $e) { 
    echo $e -> getMessage(); 
} 

while($row = $stmt->fetch()){ //error is here 
    //do stuff 
} 

스크립트 어쨌든 에러 표시되지만 작동 =/

오류가 무엇을 의미 하는가와 내가 그것을 어떻게 수정합니까? 쿼리에 문제가 있기 때문에

try { 
    $stmt->execute(); 
    while($row = $stmt->fetch()){ 
     //do stuff 
    } 
} 
catch (PDOException $e) { 
    echo $e -> getMessage(); 
} 

당신은이 메시지가 표시됩니다 : 당신이 try 문 내에서 while 루프를 실행해야하기 때문이다

+0

가능한 중복의 [왜 SQLSTATE \ [HY000 \] : 일반 오류 (http://stackoverflow.com/questions/10199571/why-sqlstatehy000-general-error) – hjpotter92

+0

대답이했다 내 문제를 해결하지 못해서 실제로는 중복되지 않습니다. – Sir

+0

@Dave SQL 프롬프트에서 입력하면 쿼리가 올바른 결과를 보여주고'execute()'가 페이지에 오류를 출력하지 않습니다. –

답변

0

. 시도 :

SELECT *,t1.id AS theID FROM users 
    t1 LEFT JOIN t2.users_settings 
    ON t1.id=t2.tid     
    INNER JOIN t3.extra_settings 
    ON t2.bid=t3.id 
+1

필자는 PHP 매뉴얼의'try' 문 안에있는 것을 본 적이 없다고 생각하지 않습니다. – Sir

+0

문제가 해결되지 않지만 '잡히지 않은 예외'메시지가 표시되지 않습니다. 내 업데이트를 참조하십시오. –

+0

내 모든 다른 쿼리가 무료로 실행되는 이유는 무엇입니까?/ – Sir

관련 문제