如何使用PDO获取字符串

时间:2015-01-08 20:24:39

标签: php postgresql pdo

我有一个postgred db,我想从表中获取一个特定的字符串值,然后执行一个条件来查看是否找到了该字符串。这是我的代码:

function tipo_utilizador($username, $password) {

    global $conn;
    $user = $conn->prepare("SELECT type
                            FROM utilizador2 
                            WHERE name = :username  AND password = :password"); 
    $user->bindParam(':username', $username);
    $user->bindParam(':password', $password);
    $user->execute();

    return $user->fetch();

}

然后我做了一个if条件,如:

$some_variable = 0;
$var = tipo_utilizador($username, $password);

if($var == "admin") {
    $some_variable=1;
}

echo $some_variable;

但当我回显$some_variable时,它总是返回0. SQL代码工作正常,用户名和密码回声也可以。 错误似乎在函数内部,但我不知道它是什么。有人能帮助我吗?

3 个答案:

答案 0 :(得分:3)

这是错误的:

$var=tipo_utilizador($username, $password);

if($var=="admin")

您的函数返回一个数组,因此您需要从该数组中获取正确的元素:

if ($var['type'] === "admin")

答案 1 :(得分:1)

fetch方法将返回一个数组,其中字段为键,而不是单个字符串。你需要这样的东西

 $var=tipo_utilizador($username, $password);

 if($var['type'] == "admin") {
   $some_variable = 1;
 }

答案 2 :(得分:1)

如果你这样做:

print_r($var);

你会明白为什么它不起作用!因为它是一个数组,所以请使用:

if ($var['type'] == "admin")