PDO Fetchcolumn给出了undefined

时间:2013-07-05 18:49:27

标签: php sql pdo fetch

我正在从数据库中获取SELECT并获取字段namelevel的值,但是当我获取数据时,我只获得name。我试图直接在MySQL中进行查询并且它有效,所以我认为这是一个PHP问题。这是我的代码:

$stmt = $dbh->prepare("SELECT name,level FROM user WHERE id = :id");

/*** bind the parameters ***/
$stmt->bindParam(':id', $_SESSION['id'], PDO::PARAM_INT);

/*** execute the prepared statement ***/
$stmt->execute();

/*** check for a result ***/
$phpro_username = $stmt->fetchColumn();
$phpro_level = $stmt->fetchColumn(1);

$phpro_username为我提供name,但$phpro_level返回undefined。 我查看了文档,它应该是正确的。

1 个答案:

答案 0 :(得分:0)

看起来您只需选择2列名称&水平。 在第一个fetchColumn中,您将获取第一列,即列名称。 但是在第二个fetchColumn中,你想在跳过一列后获取下一列,所以它会为FALSE。
试试这个:
    $ phpro_username = $ stmt-> fetchColumn();
    $ phpro_level = $ stmt-> fetchColumn();

public string PDOStatement::fetchColumn ([ int $column_number = 0 ] )
Returns a single column from the next row of a result set or FALSE if there are no more rows.

你可以这样做

/*** check for a result ***/  
$phppro = $stmt->fetch(PDO::FETCH_ASSOC);  
$phpro_username = $phppro['name'];  
$phpro_level = $phppro['level'];