Вам необходимо добавить параметр $ uname в параметры привязки, вы забыли строку кода:
$password = md5($upass);
$stmt = $this->conn->prepare("INSERT INTO tbl_users(userName,userEmail,userPass,tokenCode,spol)
VALUES(:user_name, :user_mail, :user_pass, :active_code, :spol)");
$stmt->bindparam(":user_name",$uname);
$stmt->bindparam(":user_mail",$email);
$stmt->bindparam(":user_pass",$password);
$stmt->bindparam(":spol",$spol);
$stmt->bindparam(":active_code",$code);
$stmt->execute();
Не следует использовать MD5 в качестве хэша для пароля, Вы должны использовать встроенные в php функции password_hash () и password_verify ()
Некоторые быстрые ответы:
Ваша потребность использовать привязку данных для этого для работы, другими словами, присваивают DataSource
и вызов DataBind()
.Править: кажется, что Вы делаете это. Но помните это, привычка сохраняется между обратными передачами, просто DataKey
(см. ниже).
, Если я вспоминаю правильно, необходимо определить эти DataKeyNames
, и они могут быть получены от DataKey
свойство тогда.
вы также можете использовать свойство ListViewDataItem.DataItemIndex вместо сохранения собственного индекса, как в:
foreach (ListViewDataItem item in MyListView.Items)
{
// in this example key is a string value
Foo foo = new Foo(MyListView.DataKeys[item.DataItemIndex].Value as string);
// do stuff with foo
}