My php code is given below.
class Login {
public function logar($login, $senha){
$db = new Database();
try{
$conn = $db->connect();
$prepare = $conn->prepare("SELECT * FROM account WHERE Login = :login AND Passwd = :senha");
$prepare->bindParam(':login', $login, PDO::PARAM_STR);
$prepare->bindParam(':senha', $senha, PDO::PARAM_STR);
$prepare->execute();
$ranking = $prepare->rowCount();
if ($ranking >= 1){
return "<div class='n_ok' style='margin:9px 15px;'><p>Successfully.</p></div>";
}else{
return "<div class='n_error' style='margin:9px 15px;'><p>Usuario ou senha incorreta.</p></div>";
}
}catch(PDOException $e){
echo "Erro: ".$e->getMessage();
}
}
}
While i am running this below error is occured
Fatal error: Call to a member function bindParam() on boolean in C:\AppServ\www\class\Login.class.php on line 9**
What does "new Database()" refer to. I hope it should return PDO Connection.
Below Code will work fine for sure
class Login {
public function logar($login, $senha){
$conn = new PDO('mysql:host=dbhostname;dbname=databasename', $user, $pass);
try{
$prepare = $conn->prepare("SELECT * FROM account WHERE Login = :login AND Passwd = :senha");
$prepare->bindParam(':login', $login, PDO::PARAM_STR);
$prepare->bindParam(':senha', $senha, PDO::PARAM_STR);
$prepare->execute();
$ranking = $prepare->rowCount();
if ($ranking >= 1){
return "<div class='n_ok' style='margin:9px 15px;'><p>Successfully.</p></div>";
}else{
return "<div class='n_error' style='margin:9px 15px;'><p>Usuario ou senha incorreta.</p></div>";
}
}catch(PDOException $e){
echo "Erro: ".$e->getMessage();
}
}
}
Prepare could return false, Always close your previous statement with
$statement->close();
If the syntax is correct, the following query will run well too.