【问题标题】:Does PHP have a construct similar to .NET's DataSet?PHP 是否有类似于 .NET 的 DataSet 的构造?
【发布时间】:2011-11-14 00:39:16
【问题描述】:

如何在 .NET 等 PHP 中实现 DataSet

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

select * from user

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

如何在 PHP 中实现这种机制?

【问题讨论】:

    标签: php .net mysql dataset


    【解决方案1】:

    您所描述的是 .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);
    }
    
    ?>
    

    【讨论】:

    • 对不起。我不知道用 DataSet 或 DataTable 实现的这种机制。当我运行查询时,我不想连接到 mysql 并从 mysql 中读取。我想第一次从表中获取所有数据并将其存储到内存中,当我需要一些数据时从内存中读取这些数据。
    • 是的,所以您需要的是等效于 .NET 数据集,而不是 DataReader :) 您可以编辑您的问题。我无法为您提供更多帮助,因为我一点也不擅长 php :)
    【解决方案2】:

    您可以将数据推送到这样的数组中:

    $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'];
        //...
    }
    

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2013-02-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多