۴ امیر حسین رمضان زاده
آیا نمیشه آیدی کاربر رو داخل خود آرایه‌ها قرار داد ؟
جامعه پی اچ پی ایجاد شده در ۱۸ فروردین ۱۴۰۲

توضیحاااااااااااااااااااااااااااات

سلام،

میشه گذاشت. هم بصورت value و هم بصورت key.

اگر به جواب نرسیدید باید سؤالتون رو کاملتر بپرسید.

محسن موحد ۱۹ فروردین ۱۴۰۲، ۰۰:۵۸
class database
{
    private $dsn = "mysql:host=localhost";
    private $username = 'root';
    private $password = 'root';
    private $options = [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_CASE => PDO::CASE_NATURAL,
        PDO::ATTR_ORACLE_NULLS => PDO::NULL_EMPTY_STRING
    ];
    public $conn;
 
    public function __construct()
    {
        try {
 
            $this->conn = new PDO($this->dsn, $this->username, $this->password, $this->options);
            $this->conn->query("
            create database IF NOT EXISTS php_project;
            use php_project;
            create table IF NOT EXISTS users (
            id int not null auto_increment,
            first_name varchar(150) not null,
            last_name varchar(150) not null,
            email varchar(250) not null,
            password varchar(350) not null,
            is_admin boolean default 0,
            created_at timestamp default current_timestamp,
            updated_at timestamp default current_timestamp on update current_timestamp,
            primary key (id),
            unique (email)
            );
            create table if not exists category (
            id int not null auto_increment,
            name varchar(255) not null,
            created_at timestamp default current_timestamp,
            updated_at timestamp default current_timestamp on update current_timestamp,
            primary key (id),
            unique (name)
            );
            create table if not exists post (
            id int not null auto_increment,
            cat_id int not null,
            user_id int not null,
            title varchar(400) not null,
            description varchar(700),
            body varchar(10000) not null,
            image varchar(300),
            created_at timestamp default current_timestamp,
            updated_at timestamp default current_timestamp on update current_timestamp,
            foreign key fk_post_cat_id (cat_id) references category(id) on delete cascade on update cascade,
            foreign key fk_post_user_id (user_id) references users(id) on delete cascade on update cascade,
            primary key (id)
            );
            ");
 
        } catch (Exception $e) {
            echo $e->getMessage();
        }
 
    }
 
    public function insert(string $table, array $feilds , $values) : bool
    {
        $count = count($feilds);
        $prepare_repeat = chop(str_repeat('?,',$count),',');
        $feilds = implode(',',$feilds);
        $stmt = $this->conn->prepare("insert into $table ($feilds) values ($prepare_repeat)");
        $result = $stmt->execute($values);
        return $result;
    }
 
    public function update(string $table, array $feilds, array $values, string $where_conditional,array $where_value) : bool
    {
        $feilds = array_map(fn($item)=>"$item = ? ,",$feilds);
        $feilds = chop(implode('',$feilds),',');
        $feilds = chop($feilds,',');
        $where_value = array_map(fn($item)=>"'$item'",$where_value);
        $where_value = implode(',',$where_value);
        $stmt = $this->conn->prepare("update $table set $feilds where $where_conditional = $where_value");
        $result = $stmt->execute($values);
        return $result;
    }
 
    public function delete(string $table, string $where_conditional,array $where_value) : bool
    {
        $where_value = array_map(fn($item)=>"'$item'",$where_value);
        $where_value = implode(',',$where_value);
        $result = $this->conn->query("delete from $table where $where_conditional = $where_value");
        return $result;
    }
 
    public function select(string $table, array $feilds, string $where_conditional = null, array $where_value = null)
    {
        $feilds = implode(',',$feilds);
        if ($where_value === null and $where_conditional === null){
        $result = $this->conn->query("select $feilds from $table");
        }
        if ($where_conditional !== null and $where_value !== null){
            $where_value = array_map(fn($item)=>"'$item'",$where_value);
            $where_value = implode(',',$where_value);
            $result = $this->conn->query("select $feilds from $table where $where_conditional = $where_value");
        }
        if (isset($result)){
        return $result->fetchAll(PDO::FETCH_OBJ);
        }
    }
 
}
امیر حسین رمضان زاده ۱۹ فروردین ۱۴۰۲، ۱۴:۵۱

کد بالا رو من خودم نوشتم اقا محسن؛ میخواستم نظرتون رو بپرسم ؟

امیر حسین رمضان زاده ۱۹ فروردین ۱۴۰۲، ۱۴:۵۱

بصورت کلی مشکلی نداره اما هرچقدر جلوتر برید و با مفاهیم و ابزار بیشتری آشنا بشید شکل و ساختار بهتری میتونید در نظر بگیرید.

کوئری داخل کانستراکتور هم میتونه داخل یک متد بره.

بهترین پاسخ
محسن موحد ۲۰ فروردین ۱۴۰۲، ۱۹:۵۰