PHP PDO fetch返回一个数组?

时间:2010-07-16 12:08:28

标签: php mysql arrays pdo

$GetUid = $dbConnect->prepare("SELECT UID FROM users WHERE username = :username");
$GetUid->execute($RegisterData3);
$UserID = $GetUid->fetch();

为什么它返回的数组不是字符串?

var_dump('$ UserID')说

array
  'UID' => string '45' (length=2)
  0 => string '45' (length=2)

应该是

array
  'UID' => string '45' (length=2)

更新* 0怎么样?它来自哪里?谢谢你的回复。

3 个答案:

答案 0 :(得分:13)

您没有指定fetch_style参数。它默认返回FETCH_BOTH,这是一个数组。以下是选项以及如何指定它: http://php.net/manual/en/pdostatement.fetch.php

编辑:此外,它总是返回一个数组,即使只有一列,因为一行可以包含多个属性。您可以使用FETCH_ASSOC然后指定列名来获取数据,或者,如果您只是像使用fetch()一样,则数组由列名和0索引列号索引

答案 1 :(得分:2)

如果您只想获得该列,则需要PDOStatement的fetchColumn()方法。

答案 2 :(得分:2)

逐行获取结果集,即使该行包含单个列

也是如此