Php PDO FETCHTCOLUMN提供未定义的

Php PDO FETCHTCOLUMN提供未定义的,php,sql,pdo,fetch,Php,Sql,Pdo,Fetch,我正在从数据库中执行选择,并获取字段名称和级别的值,但当我获取数据时,我只获取名称。我曾尝试直接在MySQL中进行查询,结果很好,所以我认为这是PHP的问题。这是我的密码: $stmt = $dbh->prepare("SELECT name,level FROM user WHERE id = :id"); /*** bind the parameters ***/ $stmt->bindParam(':id', $_SESSION['id'], PDO::PARAM_INT);

我正在从数据库中执行
选择
,并获取字段
名称
级别
的值,但当我获取数据时,我只获取
名称
。我曾尝试直接在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_用户名
为我提供了
名称
,但
$phpro_级别
返回
未定义

我查看了文档,它应该是正确的。

看起来您只需选择两列名称和级别。 在第一个fetchColumn中,获取第一列,即name列。 但是在第二个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'];