Php 将参数绑定到PDO语句时出现问题

Php 将参数绑定到PDO语句时出现问题,php,mysql,pdo,Php,Mysql,Pdo,我有一个奇怪的问题,我只是没有找到解决办法。问题是,准备好的sql语句没有绑定值、参数,甚至没有通过execute函数传递它们。而是插入“:blah”占位符。正如我所说,我尝试了bindParam、bindValue和这个方法,但都没有结果。不过,我现在会再试一次 我在execute调用之前输出了正在发送的参数 Array ( [:username] => schenn [:salt] => NW5552wekj5155cNr52O54q56 [:hashpass] => 5e

我有一个奇怪的问题,我只是没有找到解决办法。问题是,准备好的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);

您不应该在SQL中引用占位符。请尝试将以下内容作为SQL字符串:

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

您不应该在SQL中引用占位符。请尝试将以下内容作为SQL字符串:

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

绑定变量时,不会在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
等。。。设置正确。

绑定变量时,在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
等。。。设置正确。

pdo和Station的errorinfo打印输出均为数组([0]=>00000[1]=>[2]=>),它们从post发送或生成,然后加载到对象中。对象被交给pdo,然后将其与属性一起使用。上面的数组是存储在params数组中的信息。pdo和Station的errorinfo打印输出的可能副本是数组([0]=>00000[1]=>[2]=>),它们从post发送或生成,然后加载到对象中。对象被交给pdo,然后将其与属性一起使用。上面的数组是存储在params数组中的信息。的可能重复项