如果电子邮件和密码匹配,我希望以下代码从用户的mysql tblUser返回userID。目前它没有返回任何东西
<?php
include 'config.inc.php';
// Check whether username or password is set from android
if(isset($_POST['email']) && isset($_POST['password']))
{
// Innitialize Variable
$result='';
$email = $_POST['email'];
$password = $_POST['password'];
// Query database for row exist or not
$sql = 'SELECT UserID FROM tblUser WHERE email = :email AND password = :password';
$stmt = $conn->prepare($sql);
$stmt->bindParam(':email', $email, PDO::PARAM_STR);
$stmt->bindParam(':password', $password, PDO::PARAM_STR);
$stmt->execute();
if($stmt->rowCount())
{
$result="true" . UserID;
}
elseif(!$stmt->rowCount())
{
$result="false";
}
// send result back to android
echo $result;
}
?>
答案 0 :(得分:0)
对于大多数数据库, PDOStatement :: rowCount()不返回 受SELECT语句影响的行数。相反,使用 PDO :: query()发出带有相同的SELECT COUNT(*)语句 将谓词作为预期的SELECT语句,然后使用 PDOStatement :: fetchColumn()来检索将要的行数 被退回然后,您的应用程序可以执行正确的操作。
相反,你可以做
if($data = $stmt->fetch())
{
$result="true".$data['UserID'];
}
else
{
$result="false";
}