PDO准备插入值

时间:2016-07-25 21:09:35

标签: php sql pdo

我尝试使用PDO和自定义准备请求将我的表单(createBuilder)中的数据插入到我的数据库中:

public function createUser($data)
{
    $connect = $this->connectBDD();

    $rq = " INSERT INTO user (email, password, firstname, lastname, salt, role, addf, addl)
            VALUES (:email, :password, :firstname, :lastname, :salt, :role, NULL, NULL)";

    $t  = $connect->prepare($rq);
    $t->execute([
        ':email'     => $data["email"],
        ':password'  => $data["plainPassword"],
        ':firstname' => $data["firstname"],
        ':lastname'  => $data["lastname"],
        ':salt'      => $data["salt"],
        ':role'      => 'ROLE_USER'
    ]);

    return true;
}

但是我收到以下错误:

  

SQLSTATE [42601]:语法错误:7 ERREUR:erreur de syntaxe sur ouprèsde«user»       第1行:INSERT INTO用户(电子邮件,密码,名字,姓氏,萨尔...       ^

这是因为两个'NULL'的最后值吗?我不这么认为,因为如果我在我的数组中再添加2个变量,我仍然会收到错误...

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

':email'是一个包含字符:em等的字符串... :email(没有')是一个占位符。

永远不应该引用占位符 - 引用它们会变成非占位符。

$sql = "... VALUES(:email, :password, :firstname,  etc...";