致命错误:调用未定义的方法PDO :: bindparam()

时间:2016-03-27 20:04:24

标签: php pdo

$txtEmail = $_POST['txtEmail'];
$txtPassword = $_POST['txtPassword'];

echo $txtEmail."<br>";
echo $txtPassword."<br>";

$DBH->prepare("SELECT * FROM adm_login_info WHERE cEmail=$txtEmail AND cPassword=$txtPassword AND cLoginStat=1 AND cLock=0 ");
$STHA->bindparam(":txtEmail",$txtEmail);
$STHA->bindparam(":txtPassword",$txtPassword);
$STHA->execute();

我需要你的帮助,我正在努力解决这个问题。如果我错过了什么,请检查我的代码。

1 个答案:

答案 0 :(得分:1)

bindParam是PDO语句的一种方法,但您尝试将其与未定义的变量$STHA一起使用。

使用数据库处理程序(在您的情况下为$DBH->prepare(...))准备SQL查询将返回PDO语句。你必须用它来绑定参数并执行你的查询:

$STHA = $DBH->prepare(...); // prepare returns a "statement"
$STHA->bindParam(...); // use the statement to bind your parameters
// ...
$STHA->execute()

还注意到bindParam是用大写字母P写的。

更新:您还没有在SQL查询中使用命名参数,只是使用PHP变量。改为使用命名参数:

$DBH->prepare("SELECT * FROM adm_login_info 
WHERE cEmail = :txtEmail 
AND cPassword = :txtPassword AND cLoginStat=1 AND cLock=0 ");