آپدیت یک رکورد در mysql بدون تغییر چند فیلد ؟
در هنگام ثبت نام از کاربر اطلاعات شخصی مثل ایمیل و یوزرنیم و پسورد و زمان ثبت نام میلادی و شمسی رو ازش گرفتم و تو دیتابیس ثبت کردم .
حالا مشکلم اینجاس که کابر که میخواد اطلاعات خودشو تو پروفایل خودش یرایش کنه < نمیخوام زمان ثبت نامش که در شروع عضویت ازش گرفتم تغییری کنه .
این کد ر برای آپدیت اطلاعاتش نوشتم برای Mysql :
کد HTML:
if($a==1 && $b==1 && $c==1 && $d==1 && $e==1 && $f==1){
$result=$connect->prepare("UPDATE `db_user` SET `name`=?,`family`=?,`email`=?,`username`=?,`password`=?,`level`=?");
$result->bindValue(1,$signup['name']);
$result->bindValue(2,$signup['family']);
$result->bindValue(3,$signup['email']);
$result->bindValue(4,$signup['username']);
$result->bindValue(5,$signup['password']);
$result->bindValue(6,$_SESSION['level']);
if($result->execute()){
$success='اطلاعات شما با موفقیت ویرایش شد';
}
else{
header('location: profile.php');
die;
}
}
فقط مشکلی که دارم اینه که تو این دستور آپدیت من 2 تا از فیلد های , یعنی زمان میلادی و زمان شمسی رو برای آپدیت نفرستادم برای دیتابیس . چون نمیخواستم آپدیت بشن .
الان کار نمیکنه دستور آپدیتم . فک کنم مشکلش این باشه که باید همه فیلد ها رو برای آپدیت بفرستم . درسته؟
با چه دستوری بهش بفهمونم که نمیخوام دوتا از فیلد های جدولم آپدیت بشن؟
ممنون
- - - Updated - - -
حل شد مشکلم . باید از دستور شرزی استفاده بشه = WHERE
پاسخ : آپدیت یک رکورد در mysql بدون تغییر چند فیلد ؟
ابتدا query را دستی sql بزنید اگر آپدیت کرد سپس $result->error را پرینت کنید.
پاسخ : آپدیت یک رکورد در mysql بدون تغییر چند فیلد ؟
برای Update نیاز نیست همه فیلد ها رو بفرستی؛ حد اقل یه فیلد کافیه؛مور بعدی اینکه با این دستور کار هم بکنه کل یوزر ها اطلاعاتشون تغییرمی کنه؛ چون شرط نداره
از چنین ساختاری استفاده کن:
UPDATE table_name SET column1=value, column2=value2 WHERE some_column=some_value
همانطور که دوستمون هم گفتن $result->error پرینت بگیرید ببینید چه خطایی میده