۳ مهدی
کوئری Update توسط متد
جامعه پی اچ پی ایجاد شده در ۲۰ تیر ۱۴۰۱

سلام

    public function update($column, $value, $primaryKey)
    {
        $stmt = $this->con->prepare("UPDATE $this->table SET :column = :value WHERE $this->primaryKey = :primaryKey");
        $stmt->execute(['column' => $column, 'value' => $value, 'primaryKey' => $primaryKey]);
    }
$folderModel = new Folder();
$folderModel->update('name', 'asd', 59);

چرا من وقتی به این شکل اسم ستون رو به متد پاس میدم کوئری اجرا نمیشه و باید حتما توی کوئری مستقیما اسم ستون رو بنویسم؟ به این شکل:

$stmt = $this->con->prepare("UPDATE $this->table SET name = :value WHERE $this->primaryKey = :primaryKey");

سلام دوست عزیز

اسم ستون هاتون رو نیاز نیست bind کنید

موفق باشید ?

محمد گازری ۲۰ تیر ۱۴۰۱، ۱۱:۱۱

خب اینجوری ما گاهی وقتا مجبوریم متدهای بیشتری بنویسیم!

کلا نمیشه bind کرد؟

مهدی ۲۰ تیر ۱۴۰۱، ۱۱:۱۳

شما باید تنها ورودی‌های کاربر که ایمن نیست رو bind کنید

بهترین پاسخ
محمد گازری ۲۰ تیر ۱۴۰۱، ۱۱:۳۱