Наличие проблемных параметров привязки к инструкции PDO - PullRequest
0 голосов
/ 09 декабря 2011

У меня странная проблема, которую я просто не могу найти решение. Проблема заключается в том, что подготовленный оператор sql не является обязательным в значениях, параметрах и даже не передает их через функцию execute. Вместо этого он вставляет заполнитель ': blah'. Как я уже сказал, я пробовал bindParam, bindValue и этот метод - все безрезультатно. Однако сейчас я попробую их все снова.

Я вывел параметры, отправляемые непосредственно перед вызовом execute.

Array ( [:username] => schenn [:salt] => NW5552wekj5155cNr52O54q56 [:hashpass] => 5e54240aec6294873d11d6ac3e5b135136a1b671 [:email] => monkey@monkey.com [:state] => OR [:country] => USA [:last_login] => 12/08/2011 ) 

Ниже приведен код:

$query = "INSERT INTO player_acct (username, salt, hashpass, email, state, country, last_login)
                VALUES (':username', ':salt', ':hashpass', ':email', ':state', ':country', ':last_login')";
$stmt = $pdoI->prepare($query);
$params = array(":username" => $this->username, ":salt" => $this->salt, ":hashpass" => $this->hashpass,
                        ":email" => $this->email, ":state" => $this->state, ":country" => $this->country, ":last_login" => $this->last_login );
$stmt->execute($params);

Ответы [ 2 ]

4 голосов
/ 09 декабря 2011

Вы не должны цитировать заполнители в SQL. Попробуйте следующее в качестве строки SQL:

$query = "INSERT INTO player_acct (username, salt, hashpass, email, state, country,  
          last_login) VALUES (:username, :salt, :hashpass, :email, :state, :country, :last_login)";
0 голосов
/ 09 декабря 2011

Вы не заключаете в кавычки значения в операторе SQL при привязке переменных.

$query = "INSERT INTO player_acct (username, salt, hashpass, email, state, country, last_login) VALUES (:username, :salt, :hashpass, :email, :state, :country, :last_login)";

Также убедитесь, что $this->email и т. Д. ... установлены правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...