Tu doit appeler execute avec un tableau associatif :
$req = $sql->prepare('SELECT id FROM wa_communaute WHERE pseudo = :pseudo AND pass = :password');
Il te faut quelque chose du style :
$array = array(":pseudo" => "Kal", ":pass" => "passpass") ;
$req->execute($array);
"Prepare" et "execute" te permettent de te protéger des injections SQL par exemple. Mais il faut bien préciser les variables quelque part.
Regardes ces exemples :
<?php
/* Exécute une requête préparée en liant des variables PHP */
$calories = 150;
$couleur = 'rouge';
$sth = $dbh->prepare('SELECT nom, couleur, calories
FROM fruit
WHERE calories < :calories AND couleur = :couleur');
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindParam(':couleur', $couleur, PDO::PARAM_STR, 12);
$sth->execute();
?>
<?php
/* Exécute une requête préparée en passant un tableau de valeurs */
$calories = 150;
$couleur = 'rouge';
$sth = $dbh->prepare('SELECT nom, couleur, calories
FROM fruit
WHERE calories < :calories AND couleur = :couleur');
$sth->execute(array(':calories' => $calories, ':couleur' => $couleur));
?>
<?php
/* Exécute une requête préparée en passant un tableau de valeurs */
$calories = 150;
$colour = 'rouge';
$sth = $dbh->prepare('SELECT nom, couleur, calories
FROM fruit
WHERE calories < ? AND couleur = ?');
$sth->execute(array($calories, $couleur));
?>
J'espère t'avoir guidé,
Bonne continuation