"display_name" öğesinin boş olamayacağını, ancak $ display_name = null değiştirdiğimde;$ display_name = ''; Doldurduğum diğer alan veritabanına gidecek, ancak display_name alanında kaydedilmedi. Yani herkes bunu düzeltmeme yardım edebilir mi? Teşekkürler ! Bunu yerine $this->display_name
kurmadığını olduğunuzu konudur gibi açıklamalara dayanarakSQLSTATE [23000]: Bütünlük kısıtlaması ihlali: 1048 'display_name' sütunu boş olamaz?
<?php
class Users {
public $display_name = null;
public $email = null;
public $password = null;
public $salt = "Zo4rU5Z1YyKJAASY0PT6EUg7BBYdlEhPaNLuxAwU8lqu1ElzHv0Ri7EM6irpx5w";
public function __construct($data = array()) {
if(isset($data['email'])) $this->email = stripslashes(strip_tags($data['email']));
if(isset($data['password'])) $this->password = stripslashes(strip_tags($data['password']));
}
public function storeFormValues($params) {
//store the parameters
$this->__construct($params);
}
public function userLogin() {
//success variable will be used to return if the login was successful or not.
$success = false;
try{
//create our pdo object
$con = new PDO(db_dsn, server_user, server_pass);
//set how pdo will handle errors
$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//this would be our query.
$sql = "SELECT * FROM gs_users_table WHERE email = :email AND password = :password LIMIT 1";
//prepare the statements
$stmt = $con->prepare($sql);
//give value to named parameter :email
$stmt->bindValue("email", $this->email, PDO::PARAM_STR);
//give value to named parameter :password
$stmt->bindValue("password", hash("sha512", $this->password . $this->salt), PDO::PARAM_STR);
$stmt->execute();
$valid = $stmt->fetchColumn();
if($valid) {
$success = true;
}
$con = null;
return $success;
}catch (PDOException $e) {
echo $e->getMessage();
return $success;
}
}
public function signup() {
$correct = false;
try {
$con = new PDO(db_dsn, server_user, server_pass);
$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO gs_users_table (display_name, email, password) VALUES (:display_name, :email, :password)";
$stmt = $con->prepare($sql);
$stmt->bindValue("display_name", $this->display_name, PDO::PARAM_STR);
$stmt->bindValue("email", $this->email, PDO::PARAM_STR);
$stmt->bindValue("password", hash("sha512", $this->password . $this->salt), PDO::PARAM_STR);
$stmt->execute();
return "Sign Up Successful <br/> <a href='login.php'>Login Now!</a>";
}catch(PDOException $e) {
return $e->getMessage();
}
}
}
?>
nedir veritabanında display_name' ?? – Saty
DB'de display_name'in tam özellikleri nelerdir? –
Lütfen "gs_users_table" tablosunun tanımı için bize ulaştırın. –