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'];