无效参数编号:第20行的C:\wamp\www\stage\core\addUsers.php中未定义参数
我得到这个错误无效的参数号:参数没有在第20行的C:\wamp\www\stage\core\addtUsers.php中定义无效参数编号:第20行的C:\wamp\www\stage\core\addUsers.php中未定义参数,php,pdo,Php,Pdo,我得到这个错误无效的参数号:参数没有在第20行的C:\wamp\www\stage\core\addtUsers.php中定义 if(!empty($_POST["add_record"])) { require_once("connection.php"); $data = [ 'username' =>$_POST["username"], 'password' =>$_POST["password"], 'role' =>
if(!empty($_POST["add_record"])) {
require_once("connection.php");
$data = [
'username' =>$_POST["username"],
'password' =>$_POST["password"],
'role' =>$_POST["role"],
'photo' =>$_POST["photo"],
'nom-prenom' =>$_POST["nom-prenom"]
];
$sql = "INSERT INTO users(username,password,role,photo,nom-prenom) VALUES (:username,:password,:role,:photo,:nom-prenom)";
$statement = $pdo->prepare( $sql );
$result = $statement->execute($data);
if (!empty($result) ){
header('location:users.php');
}
}
您不能在占位符的名称中使用
-
。这将被理解为算术减法
考虑这个例子:
$pdo->prepare('SELECT :num-1')->execute(['num'=>5]);
它查找名为:num
或num
的参数,然后从中减去1。一个好的IDE甚至可以通过突出显示以下内容来帮助您:
尽管使用字母,它会突出显示与列名相同的颜色,但也可能会遗漏
尝试使用不同的占位符名称,例如
:nom_prenom
是否有任何数组元素为空?切勿存储纯文本密码!请使用PHP来处理密码安全性。如果您使用的PHP版本低于5.5,则可以使用密码\u hash()
。在散列之前,不需要对它们执行任何操作或使用任何其他清理机制。这样做会更改密码并导致不必要的额外编码。不,不存在空数组元素。我对密码使用sha1加密。不在此代码中,您不需要。SHA1对于密码不再足够。