为什么我的 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 :/';
}
所需的语句是:
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 :/';
}