我該如何在PHP中像.NET一樣實現DataSet
?PHP有一個類似於.NET的DataSet的構造嗎?
我想這個類只從數據庫中讀取數據一次,那麼我應該能夠使用數據,而不必再次連接到MySQL來運行查詢。
select * from user
當我運行在DataSet
此查詢的數據是從存儲器中取出。
我該如何在PHP中實現這種機制?
我該如何在PHP中像.NET一樣實現DataSet
?PHP有一個類似於.NET的DataSet的構造嗎?
我想這個類只從數據庫中讀取數據一次,那麼我應該能夠使用數據,而不必再次連接到MySQL來運行查詢。
select * from user
當我運行在DataSet
此查詢的數據是從存儲器中取出。
我該如何在PHP中實現這種機制?
您所描述的是可以在斷開連接模式下工作的.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);
}
?>
你可以把你的數據變成一個這樣的數組:
$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'];
//...
}
我不認爲PHP可以提供你在找什麼,因爲它是非常多的文本代碼和HTML驅動的,所以你不」像在.NET中做的那樣,可以獲得花哨的GUI對象。 PEAR提供了很多源代碼,將生成數據網格,你可能會調查,所有存儲在像數組等代碼我相對較新的PHP,所以也許有人會不同意...
對不起。我不知道用DataSet或DataTable實現的這種機制。當我運行一個查詢時,我不想連接到mysql並從mysql讀取數據。我想第一次從表中獲取所有數據並將其存儲到內存中,當我需要從內存中讀取一些數據時。 – Saeed
是的,所以你需要的是相當於一個.NET數據集,而不是一個數據讀取器:)你可以編輯你的問題。我不能幫助你更多,因爲我不擅長在PHP中:) –