我的PHP代码如下所示。
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();
}
}
}
当我正在运行时,会出现以下错误
致命错误:在第9行的C:\ AppServ \ www \ class \ Login.class.php中调用boolean上的成员函数bindParam()**
答案 0 :(得分:0)
准备可能会返回false, 始终使用
关闭之前的声明$statement->close();
如果语法正确,以下查询也会运行良好。
答案 1 :(得分:0)
&#34;新数据库()&#34;参考。我希望它应该返回PDO Connection。
以下代码可以正常使用
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();
}
}
}