php - 将参数绑定(bind)到 PDO 语句时遇到问题

标签 php mysql pdo

我遇到了一个奇怪的问题,我只是找不到解决方案。问题是准备好的 sql 语句没有绑定(bind)值、参数,甚至没有通过 execute 函数传递它们。相反,它会插入“:blah”占位符。正如我所说,我已经尝试了 bindParam、bindValue 和这种方法,但都没有结果。不过,我现在会再试一次。

我在执行调用之前输出了正在发送的参数。

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)";

关于php - 将参数绑定(bind)到 PDO 语句时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8436963/

相关文章:

php - 如果通过身份验证,则允许下载文件

php - Laravel 从集合中获取一个字段的另一个字段值

mysql - 'field list' 中的未知列(不涉及反引号)

php - 无法建立数据库连接;无效的数据源名称(仅限 PDO)

php - 即使使用 error_reporting(0),PHP 也会回显错误的原因是什么?

php - Laravel 编辑本地化

PHP PDO : SQL query not returning expected result

php - 当结果只有一行时,PDO fetchAll 似乎失败了?

PHP SimpleXML + 获取属性

mysql - 从 CSV 导入 SQL Server 时如何将日期列的文本数据类型转换为时间戳格式