PHP有一个类似于.NET的DataSet的构造吗?

时间:2011-09-09 18:37:23

标签: php .net mysql dataset

如何在PHP中实现DataSet,如.NET?

我希望这个类只从数据库中读取一次数据,然后我就可以使用数据而无需再连接到MySQL来运行查询。

select * from user

当我在DataSet上运行此查询时,数据将从内存中获取。

如何在PHP中实现此机制?

3 个答案:

答案 0 :(得分: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'];
    //...
}

答案 1 :(得分:0)

您所描述的是.NET的DataSet / DataTable数据容器类,它们可以在断开连接模式下工作。

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);
}

?>

答案 2 :(得分:0)

我不认为php可以提供你正在寻找的内容,因为它是非常多的文本代码和HTML驱动,因此你不会像在.net中那样获得花哨的GUI对象。 PEAR提供了很多源代码,可以生成数据网格,你可能会调查,所有这些都存储在代码中,比如数组等。我对php比较新,所以也许有人不同意......