PDO返回错误的值

时间:2015-10-28 12:43:52

标签: php pdo

我是PDO的新手,所以如果我在这里犯了一个简单的错误,我会道歉。如果之前已经回答了这个问题。我搜索但无法找到。我的问题是,当我打印会话时,它打印出'数组([user_id] => 1)'但我输入的用户名和密码是针对user_id 2.我尝试使用不同的用户名和密码,但它仍然给出了id值1.所以我在会话创建之前回显了$ user_id,它是1.但是我无法弄清楚它从哪里获得?因为数据库中没有id为1。任何人都可以对此有所了解吗?

以下是我的登录文件中的代码:

#

3 个答案:

答案 0 :(得分:1)

$stmt_id->execute();

成功时返回true,失败时返回false,需要使用查询结果(而不是执行状态):

 $stmt_id->fetchAll()

此处您还有一个错误,您需要使用比较而不是分配:

if ($password_verified = true)

答案 1 :(得分:0)

library(data.table) DT <- setDT(mget(paste('v', seq(10, 100, by=10), sep="_"))) for(j in seq_along(DT)){ set(DT, i=NULL, j= j, value= DT[[j]]*v_mult) } 将返回$stmt_id->execute(),在您的情况下会bool,然后转换为true

请参阅http://php.net/manual/en/pdostatement.execute.php

您需要int数据才能检索fetch

答案 2 :(得分:0)

该行

if ($password_verified = true) {

非常不正确,因为您基本上只是将true分配给$password_verified。你应该做一个if($password_verified),但我不确定它是否能解决你的问题。

您也没有解析结果,因为您应该使用fetchAll(),然后浏览结果以查看用户是否存在。