저는 PHP에서 OOP를 처음 사용합니다. 부모 클래스의 루프에 의해 생성 된 배열의 항목 값을 업데이트하려고합니다. 내 코드에서 DatabaseObject 클래스는 모든 테이블 필드 이름과 값 쌍으로 특성 배열을 만듭니다. 배열의 내용은 데이터베이스에 쓸 SQL 쿼리를 만드는 데 사용됩니다. 내가 해결하려고하는 문제는 자식 사용자 클래스의 암호화 된 비밀번호로 속성 [ 'hashed_password'] 항목을 업데이트해야한다는 것입니다. 해시 된 비밀번호가 양식 제출을 통해 제공된 것이 아니라 데이터베이스에 제출되도록 배열 항목을 어떻게 업데이트 할 것인지 잘 모르겠습니다.하위 클래스의 부모 클래스에서 배열 항목 업데이트
class DatabaseObject {
public function create(){
global $db;
static::$attributes = [];
foreach (static::$db_fields as $field) {
if(property_exists($this, $field)){
$attributes[$field] = $this->$field;
}
}
$sql = "INSERT INTO " . static::$table_name . " (";
$sql .= join(", ", array_keys($attributes));
$sql .= ") VALUES ('";
$sql .= join("', '", array_values($attributes));
$sql .= "')";
$result = mysqli_query($db, $sql)
}
}
class User extends DatabaseObject {
protected static $table_name="users";
protected static $db_fields = array("user_id", "username", "hashed_password", "email");
public $user_id;
public $username;
public $hashed_password;
public $email;
self::attributes['hashed_password'] = password_hash($this->attributes['hashed_password'], PASSWORD_BCRYPT);
}
어떤 도움을 주시면 감사하겠습니다.
setPass() 메소드는 어떻습니까? – FatalError