2014-02-22 43 views
-1

這裏建議即時通訊從mysql轉換到PDO。我只是學習一切,但知道足夠危險。下面是我有的代碼片段,並尋找從mysql> PDO的最佳實踐。從MYSQL到PDO最好的方法

function db_query($sql){ 
global $config; 
if($config['debug']){ 
    echo $sql."\n"; 
} 
$result = mysql_query($sql); 
if(($config['debug'] || true) && ($myerr = mysql_error())){ 
    echo $myerr; 
} 
$rows = array(); 
if(!$result){ return $rows; } 
while ($row = @mysql_fetch_array($result, MYSQL_ASSOC)) { 
    $rows[] = $row; 
} 
@mysql_free_result($result); 
return $rows; } 


function get_p4p($where='1=1'){ 
return db_query ("SELECT * FROM `records` WHERE $where ORDER BY `rec_order` " );} 

我已經成功地轉換了很多,但由於某種原因,這讓我很困擾。這對某些人來說可能看起來很簡單,那就是我希望的。謝謝。

+0

哇你的代碼嚇我一跳,檢查了這個http://stackoverflow.com/questions/17460857/changingcode-from-mysql-to-pdo?rq=1 – Prix

+0

它建於2006年,從未升級。即時升級它現在。不要擔心它不是生產代碼。 – MichaelQ

+1

如果你現在正在升級它,不要發佈代碼,希望人們爲你做這件事,發佈你已經做過或嘗試過的事情,以及你的問題(如果有的話)。 – Prix

回答

0

在我看來,沒有一種簡單,乾淨的方式將MySQL從程序遷移到PDO。

PDO提供了諸如預準備語句之類的新功能,這些準備語句需要將查詢和要插入查詢的數據(例如您正在搜索的ID)分開。您目前的代碼中沒有這種分隔,因此您無法輕鬆更新您的功能以利用這些新功能。 您的SQL最有可能還遠離標準SQL。我看不出移植到PDO的明顯優勢,因爲無論如何您都無法切換到其他類型的數據庫(如postgresql)。你唯一的好處是你的代碼不再使用過時的函數。 進一步的PDO只提供了一個面向對象的接口。沒有像你目前使用的程序功能。這使得遷移真的很煩人。

在我看來,遷移到PDO對於現有的程序項目沒有多大意義。這種遷移花費了大量精力,知識和測試,而這些很可能不希望爲這樣一箇舊項目做出。

你是否考慮過從MySQL擴展遷移到新的MySQL * i *擴展而不是? MySQLi提供了面向對象和過程接口。因此接口的變化要小得多。 (基本上所有的程序功能現在都需要一個連接作爲第一個參數。)MySQLi確實也提供了新的功能(如預準備語句)。你可以使用它們,如果你想。但你不必這樣做。總而言之,這使遷移變得更容易。如果您將連接作爲第一個參數提供給所有需要它的功能,則可能需要更改這些。

MySQLi將是我會走的路。

+0

這不是一個真正的項目,但更多的是我的本地主機中的學習工具。感謝您的反饋......我想我可能已經知道了。它是一個非常小的應用程序。 – MichaelQ