为什么我的 SQL 语句没有返回结果?

Why is my SQL statement not returning results?

所需的语句是:

SELECT `id` FROM `user` WHERE `email`='aaa@aaa.com'

...其中 return 是单个单元格作为结果。

我的 PDO 准备语句没有 return 任何东西。我错过了什么?

$email = "aaa@aaa.com";

$statement = $db->prepare("SELECT `id` FROM `user` WHERE `email`=':email;'");
$statement->execute(['email' => $email]);               
$user = $statement->fetch();
echo $user;

像这样使用它:

$statement = $db->prepare("SELECT `id` FROM `user` WHERE `email`=:email;"); 

$statement->execute(['email' => $email]);

此外,请确保

$db->prepare('select 1');

returns一个有效的查询结果。

不应在 :email 中使用引号

$statement = $db->prepare("SELECT `id` FROM `user` WHERE `email`=:email");

正如@siyual

所说

试试这个:

$email = "aaa@aaa.com";

$stmt = $db->prepare("SELECT `id` FROM `user` WHERE `email`=:email");
$stmt->bindParam(':email', $email, PDO::PARAM_STR);
$stmt->execute();
$row = $stmt->fetchAll(PDO::FETCH_ASSOC);
if (!empty($row)) {
    print_r($row);
}else{
    echo 'no result :/';
}