2008-11-09 90 views
1

採用標準方式(爲簡單起見,檢查刪除錯誤)一般來說,我連接和檢索數據:如何使用PHP中的對象從MYSQL數據庫連接/檢索數據?

$db = mysql_select_db("dbname", mysql_connect("host","username","passord")); 
$items = mysql_query("SELECT * FROM $db"); 

while($item = mysql_fetch_array($items)) { 
    my_function($item[rowname]); 
} 

在哪裏創建my_function做一些有益的事情witht該特定行。

什麼是使用對象的等效代碼?

回答

3

自從5.1版本,PHP是隨PDO驅動程序,它給出了準備語句的類。

$dbh = new PDO("mysql:host=$hostname;dbname=$db", $username, $password); //connect to the database 
//each :keyword represents a parameter or value to be bound later 
$query= $dbh->prepare('SELECT * FROM users WHERE id = :id AND password = :pass'); 

# Variables are set here. 
$query->bindParam(':id', $id); // this is a pass by reference 
$query->bindValue(':pass', $pass); // this is a pass by value 

$query->execute(); // query is run 

// to get all the data at once 
$res = $query->fetchall(); 
print_r($res); 

看到PDO driver at php.net

注意,當您使用binbParam或bindValue這種方式(預處理語句)將自動逃避一切必要而且是執行mysql的查詢,最安全的方法之一,只要。

還有mysqli擴展名執行類似任務,但我個人發現PDO更清潔。

整個過程如何,並且使用所有這些步驟給您提供的解決方案可能比任何其他PHP解決方案都要好。

然後,您可以使用$query->fetchobject作爲對象檢索您的數據。