我正在从数据库中获取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
。
我查看了文档,它应该是正确的。
答案 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'];