2011-09-09 66 views
3

我該如何在PHP中像.NET一樣實現DataSetPHP有一個類似於.NET的DataSet的構造嗎?

我想這個類只從數據庫中讀取數據一次,那麼我應該能夠使用數據,而不必再次連接到MySQL來運行查詢。

select * from user 

當我運行在DataSet此查詢的數據是從存儲器中取出。

我該如何在PHP中實現這種機制?

回答

0

您所描述的是可以在斷開連接模式下工作的.NET的數據容器類DataSet/DataTable

A DataReader是一種遊標,需要打開連接才能瀏覽底層查詢的結果集。

在PHP中,你可以這樣做:

<?PHP 

$user_name = "root"; 
$password = ""; 
$database = "addressbook"; 
$server = "127.0.0.1"; 
$db_handle = mysql_connect($server, $user_name, $password); 
$db_found = mysql_select_db($database, $db_handle); 

if ($db_found) { 

    $SQL = "SELECT * FROM tb_address_book"; 
    $result = mysql_query($SQL); 

    while ($db_field = mysql_fetch_assoc($result)) { 
    print $db_field['ID'] . "<BR>"; 
    print $db_field['First_Name'] . "<BR>"; 
    print $db_field['Surname'] . "<BR>"; 
    print $db_field['Address'] . "<BR>"; 
    } 

    mysql_close($db_handle); 

} 
else { 
    print "Database NOT Found "; 
    mysql_close($db_handle); 
} 

?> 
+0

對不起。我不知道用DataSet或DataTable實現的這種機制。當我運行一個查詢時,我不想連接到mysql並從mysql讀取數據。我想第一次從表中獲取所有數據並將其存儲到內存中,當我需要從內存中讀取一些數據時。 – Saeed

+0

是的,所以你需要的是相當於一個.NET數據集,而不是一個數據讀取器:)你可以編輯你的問題。我不能幫助你更多,因爲我不擅長在PHP中:) –

4

你可以把你的數據變成一個這樣的數組:

$result = mysql_query('select * from user'); 

$results = array(); 
while ($row = mysql_fetch_array($result)) { 
    array_push($results, $row); 
} 

mysql_close(); 

然後,你可以做你想做的陣列上的任何操作...

foreach($results as $record){ 
    $foo = $record['col_name']; 
    //... 
} 
0

我不認爲PHP可以提供你在找什麼,因爲它是非常多的文本代碼和HTML驅動的,所以你不」像在.NET中做的那樣,可以獲得花哨的GUI對象。 PEAR提供了很多源代碼,將生成數據網格,你可能會調查,所有存儲在像數組等代碼我相對較新的PHP,所以也許有人會不同意...

相關問題