رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در دخیره اطلاعات در دیتابیس
#1
سلام

اساتید من در ذخیره اطلاعات در yii به مشکلی خوردم .

کد زیر رو ببینید .

                if ($newsadmin->save()) {
                    $to = $newsadmin->mobile;
                    $text = $newsadmin->name . " عزیزrn";
                    $text .= "اکانت شما به شرح زیر میباشدrn";
                    $text .= "Username(email) : " . $newsadmin->email . "rn";
                    $text .= "Password : " . $pass . "rn";
                    $text .= Yii::app()->homeUrl;
                    if (Sms::send($to, $text)) {
                        $smslog = new Smslog;
                        $smslog->to = $to;
                        $smslog->text = $text;
                        $smslog->ts; time();
                        if ($smslog->save()) {
                            $send = Send::model()->findByPk(1);
                            $send->sms++;
                            $send->save();
                        }
                    }

من هر موقع که 2 یا چند save() در شرط همدیگر استفاده میکنم save() اول انجام میشه اما بقیه نه در دیتابیس چیزی ذخیره نمیشه با اینکه دستور های داخل شرط ها انجام میشه .

مشکل کجاست یا بهتره همچین مواردی رو چطوری بنویسم ؟
پاسخ
تشکر شده توسط:
#2
دقت کنید که فقط وقتی که رکورد جدید با new ایجاد میکنید، save عمل insert رو انجام میده و در مواقع دیگه (حتی بعد از اینکه مدلی که با new ساخته شده رو یکبار save کردین)، دستور update اجرا میشه. هرجا دیدین چیزی ذخیره نمیشه، فیلد errors رو نمایش بدین ببینین مشکل از کجاست. مثال:
if($model->save()) {
    // ...
} else {
    Tools::debug($model->errors);
}
پاسخ
تشکر شده توسط: mehdi king
#3
تو کدهاتون ظاهرا خط 12 مشکل داره. همچنین ممکنه هنگام ذخیره کردن خطایی رخ بده و مانع ذخیره شدن اطلاعات بشه که میتونید با استفاده از کد زیر خطاها رو ببینید.
if($model->save())
{
   ...
}
else
{
   print_r($model->errors);
}

همچنین میتونید کدهای شمارنده رو بصورت زیر بنویسید:
if ($smslog->save())
{
   Send::model()->findByPk(1)->saveCounters(['sms' => 1]);
}
...
پاسخ
تشکر شده توسط: mehdi king




کاربران در حال بازدید این موضوع: 1 مهمان