2009-09-30 5 views
3

난 그냥 aboud의 PDO와 (확실히는 mysql_real_escape_string()마다 사용하는 기억 이길 것) 준비된 문을 배우기 시작했지만 나는 제대로 실행하기 위해 스크립트를 얻는 데 문제 :도움말 문제 해결 PDO 준비된 문장

<?php 
error_reporting(E_ALL); 
echo "start"; 

try{ 
    $dbh=new PDO('mysql:host=localhost;dbname=DBNAME','USER','PWD'); 
} 
catch(PDOException $e){ 
    echo 'Error connecting to MySQL!: '.$e->getMessage(); 
    exit(); 
} 

$dbh->prepare('SELECT * FROM users WHERE uid= ?'); 
$dbh->execute(array('15400743')); 
$result=$dbh->fetchAll(); 
print_r($result); 
echo "end"; 
?> 

이것은 예제 코드에서 복사 한 것이지만 실행될 때 "start"만 반환합니다. db/user/pw를 두 번 확인했습니다. 사람들이 잘못 본 것이 있습니까? 감사!

+0

'$ dbh-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);'를 설정하고자 할 수 있습니다. 그렇지 않으면 호출 된 각 메소드의 반환 값을 확인해야합니다. – VolkerK

답변

6

올바른 방법은 다음과 같습니다

<?php 
error_reporting(E_ALL); 
echo "start"; 

try{ 
    $dbh=new PDO('mysql:host=localhost;dbname=DBNAME','USER','PWD'); 
} 
catch(PDOException $e){ 
    echo 'Error connecting to MySQL!: '.$e->getMessage(); 
    exit(); 
} 

$stmt = $dbh->prepare('SELECT * FROM users WHERE uid= ?'); 
$stmt->execute(array('15400743')); 
$result = $stmt->fetchAll(); 
print_r($result); 
echo "end"; 
?> 

참고는 $ STMT 변수와 이후 그 사용에 준비의 assinment.