2012-08-15 2 views
0

test.php라는 내 서버에 파일이 있습니다. 내용은 다음과 같습니다.인스턴스화 된 클래스로 인해 웹 사이트 문제가 발생합니다.

<?php 
echo "hi\n"; 
try { 
    $dbh = new PDO('mysql:host=localhost;dbname=db', "foo", "bar"); 
    echo "hi\n"; 
} catch (PDOException $e) { 
    die("Error!"); 
} 
echo "hi\n"; 
?> 

코드는 매우 간단합니다. 모든 것이 잘 풀리면 3 번 인쇄해야합니다.

이 코드를 셸에서 실행할 때 세 줄로 "hi"가 인쇄됩니다. 그러나 웹 사이트 (http : //localhost/test.php)를 통해이 파일에 액세스하면 하나의 hi 만 인쇄됩니다.

제거 $ dbh = new PDO ('mysql : host = localhost; dbname = db', "foo", bar "); 세 사람 모두 웹 사이트를 통해 성공적으로 인쇄하게됩니다.

MySQL 정보가 정확하며 사용자가 데이터베이스에 액세스 할 수 있습니다.

쉘을 통해 파일에 직접 액세스하여 세 번 모두 인쇄 할 수 있지만 웹 사이트를 통해 액세스 할 때 한 번만 인쇄하면 어떻게됩니까?

+0

브라우저에서 볼 때 한 줄에 "hi hi hi"가 인쇄되지 않습니까? 브라우저는'\ n ''을 줄 바꿈으로 처리하지 않으므로'
'이 필요합니다. – meagar

+0

예, 처음에는 거기에 개행 문자가 없었지만 형식을 좋게 만들었습니다. –

+0

브라우저에서 액세스 할 때 페이지를 마우스 오른쪽 버튼으로 클릭하고 "소스보기"를 선택하십시오 - 여전히 3 개의 "안녕"이 표시됩니다. – alfasin

답변

0

PDO 확장을 사용하도록 설정 하시겠습니까? "hi"를 하나만 얻으면 PDO 개체 선언에 fatel 오류가 발생합니다. 이 같은 것을 "Fatal error: Class 'PDO' not found" 확인하십시오.

http://php.net/manual/en/pdo.installation.php

코드는 어쨌든 나를 잘 작동합니다.

+0

이것이 문제였습니다. pdo를 설치 한 후 httpd를 다시 시작하는 것을 잊었습니다. 바보 나! –

관련 문제