2016-03-27 5 views
1
$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(); 

Пожалуйста, мне нужна ваша помощь. Я пытаюсь решить эту проблему. Пожалуйста, проверьте мои коды, если есть что-то, что я пропустил.Неустранимая ошибка: вызов неопределенного метода PDO :: bindparam()

+0

Что такое '$ STHA'? –

+0

Где вы создаете свою любезную долю доступа или также где вы инициализируете PDO, например $ DBH = new PDO ('dblib: host ='. $ ServerUrl. '; Dbname ='. $ ServerDb, $ serverUser, $ serverPass); – chapskev

ответ

1

bindParam - метод инструкции PDO, но вы пытаетесь использовать его с неопределенной переменной $STHA.

подготовка SQL-запроса с обработчиком базы данных ($DBH->prepare(...) в вашем случае) возвращает инструкцию PDO. Вы должны использовать это, чтобы связать параметры и выполнить запрос:

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

также заметить, что bindParam пишется с заглавной буквы П.

обновление: вы также не использовать свои именованные параметры в вашем SQL query, вы просто используете переменные PHP. используйте вместо этого именованные параметры:

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

Что мне делать, чтобы все исправить? как я могу использовать $ STHA для определенной переменной? tnx –

+0

@SchwarzSpiel см. мой обновленный ответ. –

+0

Вы могли бы потратить несколько слов о проблемах с безопасностью кода op – Fabio

Смежные вопросы