如何使用 PDO 获取字符串

How to fetch a string using PDO

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

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 时,它总是 returns 0。SQL 代码工作正常,用户名和密码回显也没有问题。 错误似乎在函数内部,但我不知道它是什么。有人可以帮助我吗?

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

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

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

这是错误的:

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

if($var=="admin")

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

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

如果你这样做:

print_r($var);

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

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