php clone 无法正常工作

标签 php mysql clone

尝试从 mySQL 数据库构建一个简单的数据网格。

我用来连接的数据库类将结果集作为对象返回。我想克隆这个对象,这样我就可以使用 getNext() 方法获取表的标题,而无需向前移动指针以删除返回的第一行。我希望这像克隆结果集一样简单,这样我现在就有了 2 个相同的对象。然后返回一个对象中的 header ,同时保持另一个对象不变。

然而事实证明,这比我想象的要难。也许我没有正确使用克隆所以如果你能帮忙请告诉我我做错了什么。

代码如下:

        function gethtmlTable($database, $table)
            {
                $db = new DB_Connection();
                $sql = "SELECT * FROM $table;";
                $result = $db->query($sql,$database);
                $tabelheader = clone $result;
                $tablerows = clone $result;
                if (!$result) die($db->getError());
                if ($result->getNumRows() == 0) die('No Results');

                $count = $tabelheader->getNumRows();
                $html = "<table><th>Select</th>";

                // echo "<pre>".var_dump($result)."</pre>";    
                foreach($tabelheader->getNext() as $k => $v){
                       $html .="<th>".$k."</th>";
                }
                while($count > 0){ 
                    $row = $tablerows->getNext();      
                    $html .= "<tr>";
                    $html .= "<td><input type='checkbox' id='checkbox".$count."' name=checkbox".$count." class ='styled' value='checked'></td>";

                    foreach($row as $k => $v){
                            $html .="<td>".$v."</td>";
                    }

                    //foreach($result->getNext() as $k => $v){
                    //   $html .="<td>".$v."</td>";
                    //}
                    $html .="</tr>";
                    $count--;
                 }
                $html .="</table>";
                echo $html;

            }

当我运行这个函数时,我得到一个带有标题和选择框的表格,但第一行总是丢失。 :(

最佳答案

与其说是直接答案,不如说是解决方案,但您不需要克隆您的对象。相反,您可以稍微更改 while 循环并仅使用查询中的 $result:

do
{
  // do the stuff you are doing now except for fetching a new row


  // at the end:
  $count--;
  $row = $result->getNext();
}
while ($count > 0)

关于php clone 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12463820/

相关文章:

php - 当前 Web 应用程序架构中的常见做法

PHP,将数据存储到 session 和数据库之间哪个更好?

php - 将我的网站设置为公开后图像出现错误

php - 如何修复 Laravel 5.7 中的 "Invalid datetime format: 1366 Incorrect integer value: "错误?

php - MYSQL、PHP、MEMCACHED - 显示最近 20 篇帖子以及最近 4 条评论

jQuery 单击克隆并删除原始内容

mysql - 如何在 Debian 10 上的 Mysql 8.0 中启用远程连接

PHP 日期时间格式

使用模板化类的 C++ 多态克隆。不能将克隆的对象用作函数中的参数

java - 什么是子类化?