PDO无法获取数据库值

时间:2014-01-10 09:52:01

标签: php pdo

我是pdo的新手。在这里,我正在尝试使用pdo编辑和更新我的数据库记录。下面我在这里发布了我的两个页面编码。在主页面中,我将获取特定数据库表的详细信息。如果用户单击“编辑”链接,它将重定向到另一个页面,以使用GET['id'];编辑特定记录的值。在editpage中,我正在尝试获取已存储的值。但我无法取得它。我尝试了print_r($username);var_dump($username);。它没有显示editpage中的值。

主页PHP编码:

<?php
    include('config.php');

    $sql = "SELECT * FROM ebusers";
    $db = $conn->query($sql);
    $db->setFetchMode(PDO::FETCH_ASSOC);

    while($row = $db->fetch())
          {
            echo "<td>". $row['UserID'] ."</td>";
            echo "<br>";
            echo "<td><a target=_blank href='edit.php?id=". $row['UserName'] ."'>Edit</a></td>";
            echo "<br>";
          }
    ?>

编辑页面PHP编码:

<?php
    include('config.php');  

    $uid = $_GET['id'];
    $sql = "SELECT * FROM ebusers WHERE UserID = '$uid'";
    $db = $conn->query($sql);
    $db->setFetchMode(PDO::FETCH_ASSOC);

    if($db->fetchColumn()>=1)
    {
        while($row = $db->fetch())
        {
            $username = $row['UserName'];
        }

    }
?>
<html>
<head>
    <title></title>
</head>
<body>
    <form action="delete.php" method="post">
        <input type="text" name="name" value="<?php echo $username;?>" />
        <input type="submit" />
    </form>
</body>
</html>

配置PHP页面

    $user = "root";
    $password = "password";

    try 
    {
        $conn = new PDO('mysql:host=localhost;dbname=evouchers', $user, $password);
        $conn -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }
    catch(PDOException $e)
    {
        echo 'DATABASE ERROR : ' . $e->getMessage();
    }

我不知道我犯了哪个错误?

1 个答案:

答案 0 :(得分:1)

为什么要先获取第一列?在if语句中评估它。然后取整行?

更改时会发生什么

if($db->fetchColumn()>=1)
{
    while($row = $db->fetch())
    {
        $username = $row['UserName'];
    }
}

while($row = $db->fetch())
{
    var_dump($row['UserName']);
}