如何使用PDO通过此语句获取数据并仅检索第一列?

时间:2013-09-25 02:49:24

标签: php mysql pdo fetch

正如标题所述,我只能抓住id列,我得到其他人的未定义索引错误。

我的代码:

if(isset($_SESSION['id'])) {
    $presh = $_SESSION['id'];
    $stmt = $pdo->prepare("SELECT id FROM users WHERE id = :id");
    $id = $presh;
    $stmt->execute(array(':id'=>$id));
    $accountinfo = $stmt->fetch(PDO::FETCH_ASSOC);
}

稍后在我的代码中我引用它:

Karma <span id="kcurrent"><?php echo $accountinfo["karmacurrent"]; ?></span> | <span id="ktotal"><?php echo $accountinfo["karmatotal"]; ?></span>

这些行确实存在且已填满,我做错了什么?

1 个答案:

答案 0 :(得分:6)

您只能选择id列,因为这是查询中的全部内容。

尝试这样的事情

if (isset($_SESSION['id'])) {
    $presh = $_SESSION['id'];
    $stmt = $pdo->prepare("SELECT id, karmacurrent FROM users WHERE id = :id");

    $id = $presh;

    $stmt->execute(
        array(
            ':id'=>$id
        )
    );

    $accountinfo = $stmt->fetch(PDO::FETCH_ASSOC);
}

基本上你只是从表中检索ID而不是其他列。