2012-10-25 3 views
-1

내가 예를 들어 시도의 catch 블록을 사용하고 있습니다 :PHP, PDO, SQL을, 캐치를 시도, 연결

try{ 
    require_once('../php/connect.php'); 
    $dbh = db::getInstance(); 
    // What i am trying to understand should i close the connection here before the header? 
    header("Location: x.php"); 
    } 
} catch(PDOException $e){ 
    require_once('err.php'); 
} 
$dbh = null; // Or should i close the connection here? 

인 "인터프리터"도 줄 끝에서 얻을 "5"여러분 모두 감사하고 좋은이 일.

+0

전혀 이해가되지 않습니다. $ dbh를 설정 중이며 예외가 발생하지 않으면 위치 헤더를 보내 스크립트를 종료합니다. 나는 당신의 질문을 보지 못합니다. – jonas

+1

실수도 두 번이나 실감하셨습니까? – Layke

+0

내 코드 doe가 이해가되지 않는다면 유감입니다. 코드 연결 부분과 헤더 사이의 연결 사이에 연결 코드를 보내면 질문을 할 수 있습니다. 데이터를 데이터베이스에 입력하고 귀하의 질문에 당신을 데려가는 헤더. –

답변

3

header() (recommended) 뒤에 exit을 사용하지 않으므로 코드가 계속 실행됩니다. 당신은 또한 라인 4 (10)에 넣어 경우 prodigitalson에 의해 지적

같은, 그것은 중요하지 않습니다, 당신은 명시 적으로 close the database connection에 필요를하지 않는다.

+0

내가 맞다면 헤더는 스크립트가 끝날 때까지 기다렸다가 x.php 위치로 사용자를 데려 갈 것이다. 당신이 스크립트/연결의 나머지 부분을 죽이고있는 헤더 이후, 나는 연결 링크에서 catch 블록에서 die()를 사용하여 PHP 매뉴얼을 보았습니다. 제발 저에게 말할 수 있다면, Doe는 catch 블록을 자동으로 닫습니다. 만약 doe 's라면, 나는 매뉴얼이 die()를 사용하여 코드가 해석되지 않도록 계속 이해할 것이다. catch가 연결을 닫지 않으면 die()는 연결을 닫고 해석 할 코드를 멈출 것이다. –

+0

'header()'다음에'exit'를 사용하는 것이 옳습니다. 아니요, 'catch'는 자동으로 연결을 닫지 않습니다. PHP가 종료되면 정상적으로 또는 명시 적으로'exit','die' 등으로 연결이 자동으로 닫힙니다. –

+0

Jason 대단히 감사합니다. –

1

전혀 연결을 닫지 않아도됩니다. PHP가 끝나면 닫힙니다. 그러나 header 다음에 exit을 호출하지 않을 것입니다 ...

당신의 코드는 그렇습니다. db 연결이 성공하면 왜 아무 것도하지 않고 리디렉션합니까? 머리글을 모두 사용하는 경우 오류 페이지 (예 : catch 블록)로 리디렉션하도록 전화를 걸 것이라고 생각합니다.