我尝试使用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个变量,我仍然会收到错误...
感谢您的帮助
答案 0 :(得分:2)
':email'
是一个包含字符:
,e
,m
等的字符串... :email
(没有'
)是一个占位符。
永远不应该引用占位符 - 引用它们会变成非占位符。
$sql = "... VALUES(:email, :password, :firstname, etc...";