1

我正在SELECT从数据库中获取字段name和的值level,但是当我获取数据时,我只得到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。我查看了文档,它应该是正确的。

4

1 回答 1

0

看起来您只需选择 2 列名称和级别。在第一个 fetchColumn 中,您获取第一列,即名称列。但是在第二个 fetchColumn 中,您希望在跳过一列后获取下一列,所以它是 FALSE。
试试这个:
$phpro_username = $stmt->fetchColumn();
$phpro_level = $stmt->fetchColumn();

公共字符串PDOStatement::fetchColumn ([ int $column_number = 0 ] )
从结果集的下一行返回单个列,如果没有更多行,则返回 FALSE。

或者

你可以这样做

/*** check for a result ***/  
$phppro = $stmt->fetch(PDO::FETCH_ASSOC);  
$phpro_username = $phppro['name'];  
$phpro_level = $phppro['level'];
于 2013-07-05T19:01:12.953 回答