片段代码
if (!empty($_POST)) {
$query = "SELECT userid FROM user WHERE email = :email";
$query_params = array(':email' => $_POST['email']);
try {
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
}
catch (PDOException $ex) {
$response["success"] = 0;
$response["message"] = "Database Error Get User ID!";
die(json_encode($response));
}
if ( false !== ($user = $stmt->fetch()))
{
$userid = $user['userid'];
}
else {
$response["success"] = 0;
$response["message"] = "Why you come here!";
die(json_encode($response));
}
我想问的是,之后$row = $stmt->fetchAll();
我应该如何编写将userid分配到$ userid的代码而php不会将行结果保存到变量中。
答案 0 :(得分:0)
$userID = isset($row['userid']);
只需检查是否设置了$ row [' userid'],即它是bool值。
只需检查数组是否为空就足以让您立即获取值:
if(!empty($row))
{
$userId = $row['userid'];
}
如果这不是您所要求的,那么您需要让问题变得更加精确。
答案 1 :(得分:0)
fetchAll()返回一个数组。所以$ row ['userid']将不会被设置。 $ row [0] ['userid']会。
Betterh将使用:
if ( false !== ($user = $stmt->fetch()) )
{
$userid = $user['userid'];
} else
{
//user not found
}
这段代码的作用是,它试图从语句中获取一行。如果没有找到行->fetch()
则返回布尔值false
。只要它不返回false,我们就可以在$user
var中的语句中找到一行:)