2012-10-11 4 views
0

저는 pdo를 처음 접하고 조금 싸우고 있습니다.PHP pdo가 변수를 사용하여 mysql 질의의 출력을 표시합니다.

mysql 쿼리의 결과를 테이블에 채우고 싶습니다.

while($row = $useredit->fetch(PDO::FETCH_ASSOC)) 
{ 
echo $row['firstname']; 
echo $row['middelname']; 
echo $row['surname']; 
} 

이 그러나 빈을 생성합니다

function get_editusers($db){  
    try { 
     $result = $db->query("SELECT firstname, middlename,surname,fullname,gender, birthdate,homelanguage,department,employeetype,employeestatus,idnumber FROM Persons where employeeid= :empid"); 
     return $result; 
    } catch(PDOException $ex) { 
     return $ex; 
    } 
} 

$useredit= get_editusers($db); 

내가 다음 값 출력에 다음을 사용 : 쿼리 변수

는 다음과 같은 기능을 가지고있는 기반으로 하나의 결과를 반환합니다 오류없이 결과.

어떻게이 sytnax를 수정할 수 있습니까? 또한 vairable $ employeeid에 변수를 바인딩하는 구문을 변경해야합니다.

단일 레코드를 출력하는 mysql 쿼리의 결과를 가져 와서 출력하는 올바른 방법일까요? 그렇지 않다면 실제 사례를 통해 조언 해 줄 수 있습니다. 사전에

감사합니다,

+0

사과, 정정 된 질문. – Smudger

답변

1

당신은 당신의 쿼리에서 매개 변수 :empid을 사용하고 해당 매개 변수에 대한 값을 전달해야합니다. 값이 없으면 빈 결과 집합을 의미합니다.

바인딩 매개 변수를 사용할 때는 쿼리를 준비하고 매개 변수를 바인딩 한 다음 쿼리를 실행해야합니다.

function get_editusers($db, $id){  
    try { 
    $result = $db->prepare(" 
    SELECT firstname, middlename,surname,fullname,gender, 
    birthdate,homelanguage,department,employeetype,employeestatus,idnumber 
    FROM Persons where employeeid= :empid"); 

    $result->bindParam(':empid', $id, PDO::PARAM_INT); 
    $result->execute();   
    return $result; 
} 
    catch(PDOException $ex) { 
    return $ex; 
    } 
} 
+0

감사합니다. JvdBerg, 나에게 도움이 될만한 코드 스 니펫이 있습니까? 감사합니다, – Smudger

+0

고마워 JvdBerg, 내 코드에 맞게 변수 $ id를 $ employeeid로 변경하는 것 외에 언급 된 코드를 업데이트했습니다. 이제 오류가 발생합니다 : 'get_editusers()에 대한 인수 2가 없습니다 ...'라는 조언. 덕분에 – Smudger

+1

당신도 전화를 변경해야합니다 :'$ useredit = get_editusers ($ db, $ id);' – JvdBerg

1

쿼리를 실행하기 전에 매개 변수 empid를 바인딩해야합니다.

$sth = $dbh->prepare("SELECT firstname, middlename FROM Persons where employeeid= :empid"); 
$sth->bindParam(':empid', $emp_id, PDO::PARAM_INT); 
$sth->execute(); 
$row = $sth->fetch(); 
echo $row['firstname']; 
+0

고맙습니다 surffan,이 방법은 JvdBerg가 아래 제안한 것보다 낫습니까? – Smudger

+1

JvdBerg는 PHP 문서 http://www.php.net/manual/de/pdostatement.bindparam.php에 표시된 것과 같은 방법이라고 말했다. – surffan

관련 문제