PDO

2013-01-24 3 views
0

에 mysql_로 함수에서 가능한 중복 변환하는 방법 :
How to successfully rewrite old mysql-php code with deprecated mysql_* functions?PDO

이 사이트에 대한 몇 가지 질문을 게시 한 내가 게시 할 때마다 적어도 한 사람이 나올 수를 내가 더 이상 지원되지 않으므로 mysql_ 함수를 사용하지 않기를 요청한다. PDO를 사용하라는 사실을 모른다고 나는 몰랐다. 어떻게 작동하는지 알아 내려고 노력했기 때문에 모든 코드를 변환했지만 지금은 적용했다. 코드 및 해당 연결을 통해 작동하지 않는 것 같습니다. 부분은 작동하지. 여기 내가 mysql_ 함수로 작동하지만 PDO에서는 작동하지 않는다 : 모든 도움을 주실 수 있습니다.

<?php 
#database connection 
$con = new PDO('mysql:host=localhost;dbname=adnan;charset=UTF-8','root',''); 

$sql = $con->query("SELECT * FROM 
m1debtors INNER JOIN 
m1dtrans 
ON m1debtors.name = m1dtrans.user"); 

while ($row=$sql->fetchAll(PDO::FETCH_ASSOC)){ 
    $ name = $row[' name ']; 
    $ user = $row[' user ']; 
} 

// The JSON standard MIME header. 
header('Content-type: application/json'); 
$array = array('name'=>$name, 'user'=>$user); 
echo json_encode($array); 
?> 
+2

http://stackoverflow.com/questions/14491430/using-pdo-to-echo-display-all-rows-from-a-table –

+0

'$의 name'과'$ 할 name' 나에게 정확하지 않습니다. – hjpotter92

+0

'마지막'레코드의 값만 사용합니다. 즉, while 루프가 불필요하거나 구조가 잘못되었습니다. – VolkerK

답변

1

코드를 PDO로 변환하는 것은 꽤 간단한 작업입니다.
실제로 필요한 것은 설명서 페이지에서 예제를 읽고 이해하는 것입니다.

연관 배열 형태로 하나의 행만 필요하므로 fetch()은 이미 그렇게 할 수 있습니다.

$row=$sql->fetch(PDO::FETCH_ASSOC); 
// The JSON standard MIME header. 
header('Content-type: application/json'); 
echo json_encode($row); 
-3

나는 PDO를 훨씬 쉽게 사용할 수있는 클래스 작성을 권장합니다.

그럼 당신은

$database->query('SELECT id FROM users WHERE name = :name'); 

$database->bind(':name', 'Jenny'); 

$row = $database->single(); 

는 자신의 클래스를 작성하기위한이 튜토리얼에서보세요 ... 같은 것을 할 수 있습니다.

http://culttt.com/2012/10/01/roll-your-own-pdo-php-class/

+0

기존의 PDO와의 차이점은 무엇입니까? 단일 행을 반환하는 매우 fetch() 메서드가 있습니다. –

+0

링크를 살펴보십시오. 단일 메서드는 행을 반환합니다. – philipbrown