当使用PDO从mysql数据库中获取值时,我得到了一些冗余信息,我想知道为什么。下面的php函数返回值,因为我希望它们被返回。但是如果我返回结果数组,我会得到双值。
public function getNames($userid) {
try {
$dbh = new PDO('mysql:host=localhost;dbname='.parent::Database(), parent::User(), parent::Password());
} catch (PDOException $e) {
var_dump("error: $e");
}
$sql = "SELECT ID, Name FROM cars WHERE userid =:UID and type=2";
$sth = $dbh->prepare($sql);
$sth->bindParam(':UID', $userid);
$sth->execute();
$result = $sth->fetchAll(); //fetches all results where there's a match
$result2 = array();
foreach($result as $res)
$result2[] = array("ID"=>$res["ID"], "Name"=>$res["Name"]);
return $result2;
}
$结果返回:
Array
(
[0] => Array
(
[ID] => 2
[0] => 2
[Name] => Volvo
[1] => Volvo
)
[1] => Array
(
[ID] => 8
[0] => 8
[Name] => Ford
[1] => Ford
)
)
$ Result2返回:
Array
(
[0] => Array
(
[ID] => 2
[Name] => Volvo
)
[1] => Array
(
[ID] => 8
[Name] => Ford
)
)
为什么$结果表现得像这样?就像它多次获取我的数据一样。我使用的代码错了吗?如果可能的话,我想使用$ result2的结果而不指定每个返回数组 - 以防表格在某个时刻被编辑。可能?
答案 0 :(得分:0)
您将结果作为关联数组和索引数组。
要仅获取关联数组,可以使用:
$result = $sth->fetchAll(PDO::FETCH_ASSOC);