Php pdo 结果数组

Php pdo result array

我有一个 select 数据库应该得到一个数字并显示它,但只显示 array

$sth = $conn->prepare("SELECT score FROM people WHERE email='gasd3z@yaho.com'");
$sth->execute();
$result = $sth->fetchAll(PDO::FETCH_ASSOC);

echo $result;

我该怎么做才能显示该数字?

您可以使用 print_r($result)var_dump($result) 打印数组。回显只打印出类型。

此外,如果您只需要打印出特定行,请按 echo $result['score'];

前面的回答是错的,但是错的不多。 当您执行 fetchAll() 时,您将从数据库中获取所有匹配查询的行。

答案是

$sth = $conn->prepare("SELECT score FROM people WHERE email=:email");
$sth->execute([':email' => 'gasd3z@yaho.com']);
$result = $sth->fetch(PDO::FETCH_ASSOC);
$sth->closeCursor();
echo $result['score'];

并且不要忘记 prepare() 用于准备语句,因此您最好像我的示例一样希望查询中的用户数据。如果您不想处理查询中的任何值,请改用 query()exec()

你不需要准备任何东西,所以你不需要使用准备好的语句,只需使用这样的查询:

$result = $conn->query("SELECT score FROM people WHERE email='gasd3z@yaho.com'");
foreach($result as $row)
    echo $row['score'];