PHP PDO获取对象转换为字符串

时间:2016-01-01 04:23:41

标签: php mysql pdo

try {
    $dbh = new PDO($dsn, $user, $pass);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}
// For brevity, code to establish a database connection has been left out

$sth = $dbh->prepare('
  SELECT
    Password
  FROM Customer_login
  WHERE
    Email = :username
  LIMIT 1
  ');

$sth->bindParam(':username', $username);

$sth->execute();

$user = $sth->fetch(PDO::FETCH_OBJ);
printf($user);
// Hashing the password with its hash as the salt returns the same hash
if ( hash_equals($user->Password, crypt($password, $user->Password)) ) {
  // Ok!
printf("login success for customer");
echo 'Login Accepted';
}
else
{
printf("customer login fail");
}
?>

当我运行此代码时,错误说明了 类stdClass的对象无法转换为字符串

我实际上是尝试使用电子邮件ID从表中获取哈希密码,然后尝试比较肯定的凭据。

当我们将数据存储在外部服务器中时,也可以解释实现IOS应用程序的最佳方法。

1 个答案:

答案 0 :(得分:1)

删除printf行。 $user的值是一个对象,printf的第一个参数除了一个字符串。

  

printf:int printf(string $ format [,mixed $ args [,mixed $ ...]])    Read more here

关于你的第二个问题,这是一个相当广泛的问题,你可能想要研究更多,看看你的选择是什么,并评估什么将最适合你。您可能喜欢Parse.com,但您可能还想设置自己的服务器,选择太多。