2012-10-23 6 views
-1

저는 PDO를 처음 사용합니다. 일부 온라인 자습서를 사용해 보았고 몇 가지 단계별 가이드를 발견했습니다. 나는 WAMP를 사용하고 있는데, 나는 "books"라는 테이블을 가지고 "try"라는 데이터베이스를 만들었다. 이제PDO 코드가 작동하지 않습니다.

<?php 
$host = "localhost:3306"; 
$db = "try"; 
$user = "clyde"; 
$pass = "moonfang"; 
$conn = new PDO("mysql:host=$host;dbname=$db",$user,$pass); 

$sql = "SELECT * FROM books"; 
$q = $conn->query($sql) or die("failed!");  

while($r = $q->fetch(PDO::FETCH_ASSOC)){  
    echo $r['title']; 
} 
?> 

를 내 브라우저에서 로컬 호스트를로드 할 때마다 나는 이러한 오류를 참조; 지금 내 index.php를에 내가 쓴 enter image description here 내가 문제를 이해 해달라고 .. :-(

+0

확인을 처리하는 PDO 오류를 포함한다

$sql = "SELECT * FROM books"; while($r = $sql->fetch(PDO::FETCH_ASSOC)){ echo $r['title']; } 

과 같아야합니다 , $ user, $ pass – Svetoslav

+1

실제로 웹 서버와 동일한 컴퓨터에서 MySQL 서버를 실행하고 TCP 포트 3307에서 수신 대기합니까? 기본 MySQL 포트는 3307이 아니라 3306입니다. – lanzz

+0

예 로컬 호스트와 포트가 맞습니다. mysql을 사용할 때 작동하지만 PDO 코드는 사용하지 않습니다. :-(( – clydewinux

답변

2

several examples에 따르면 PDO는 host 자체에 대한 DSN에서 port 좋아 보인다 :

$host = "localhost"; 
$port = 3307; 
$conn = new PDO("mysql:host=$host;port=$port;dbname=$db",$user,$pass); 

Here's the PHP manual for the PDO MySQL DSN를 "포트"를 참고. 부품.

+0

+1 좋은 캐치.이 문제는 가능한 희소식입니다. –

+0

여전히 동일한 오류가 발생합니다. :-( – clydewinux

+0

@ClydeWinux MySQL 서버가 실행 중입니까?이 포트에서 localhost로 telnet하면 어떻게됩니까? (Windows 7을 실행 중이고 텔넷이 설치되어 있지 않으면 [이 설명서를 따르십시오] (http://www.fettesps.com/windows-7- enable-telnet /) 또는 [putty] (http://www.chiark.greenend.org.uk/~sgtatham/putty/)를 사용하십시오. – h2ooooooo

0

문제는 타겟 시스템이 적극적 [연결] 거부 이다.

따라서 데이터베이스 서버에 대한 사용자 이름/암호/액세스 권한이 모두 올바른지 확인해야합니다. IP/호스트 및 포트/방화벽 설정이 포함됩니다.

0

오류가 발생하는 라인 8은 $q = $conn->query($sql) or die("failed!");입니다.이 라인은 mysql_와 PDO를 혼합하며 필수는 아닙니다.

코드는 또한 모든 값 .. $ 호스트가 (이 3307 포트 인 로컬 호스트 그 것이다), $ DB를

`

관련 문제