-1

我有以下函数从 db 表中获取所有数据行。一切似乎都很好,除了我不确定在我的代码中分配 fetched$row的一部分。$data由于我没有显式设置获取模式,我希望从对fetch().

function getAll()
{  
    $data = array();

    try
    {
        $conn = new PDO('mysql:host=localhost;dbname=pdo', 'root', '');
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

        $stmt = $conn->prepare('SELECT * FROM pdo_table');
        $stmt->execute();

        while($row = $stmt->fetch()) 
        {
            $data = $row;
        }
    }
    catch (PDOException $e) 
    {
        echo 'Error: ' . $e->getMessage();
    }

    return $data;   
}

现在,我有一个单独的索引$data页,它在 html 表中回显返回的内容。我首先添加了对包含相关函数的 php 页面的引用,然后将返回的数组分配给另一个名为$results.

<?php foreach($results as $row) { ?>
    <tr>
        <td><?php echo $row['id'] ?></td>
        <td><?php echo $row['Date'] ?></td>
        <td><?php echo $row['name'] ?></td>
        <td><?php echo $row['company'] ?></td>
        <td><?php echo $row['email'] ?></td>
        <td><?php echo $row['phone'] ?></td>
        <td><?php echo $row['interest'] ?></td>
        <td><?php echo $row['message'] ?></td>             
    </tr>
<?php } ?>

我目前只插入了一行,但这并没有根据需要在表中填充结果 在此处输入图像描述

4

2 回答 2

1

尽管您的目标是正确的,但实施方面也可能存在缺陷。

正确的代码:

function getAll($conn, $sql, $data = $array())
{  
    $stmt = $conn->prepare($sql);
    $stmt->execute($data);
    return $stmt->fetchAll();
}

不应该在这个函数中连接,而是使用一次建立的站点范围的连接。
这个函数应该能够接受任意查询,以及为它绑定数据
你捕获异常的想法是错误的。

于 2013-08-13T06:15:14.923 回答
-3

只改变一个语句

          $stmt->execute(); to


     $result=   $stmt->query($statement); 
        to fetch data
         and   process  result set in following way
    while($row=$result->fetch())
        {
      <tr>
    <td><?php echo $row['id'] ?></td>
    <td><?php echo $row['Date'] ?></td>
    <td><?php echo $row['name'] ?></td>
    <td><?php echo $row['company'] ?></td>
    <td><?php echo $row['email'] ?></td>
    <td><?php echo $row['phone'] ?></td>
    <td><?php echo $row['interest'] ?></td>
    <td><?php echo $row['message'] ?></td>             
</tr>

}

投票给我,谢谢

于 2013-08-12T12:10:05.503 回答