2013-01-24 77 views
0

可能重複:
How to successfully rewrite old mysql-php code with deprecated mysql_* functions?如何從mysql_函數轉換爲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