02-04-1394، 04:34 ب.ظ
02-04-1394، 04:41 ب.ظ
سلام
من هم دنبال این جواب بودم میخواستم عکس که آپلود میشه هم نام با آی دی رکورد جدید باشه از این روش استفاده کردم
نمیدونم حالا چقدر درست باشه اما کار میکنه
با کد بالا آخرین ای دی موجود در جدول posts را بدست آوردم و در نهایت
کد ای دی که قرار ثبت بشه
البته این کد ها برای فریمورک Yii میباشد اگر خود Query هم خواستی بگو بدم
من هم دنبال این جواب بودم میخواستم عکس که آپلود میشه هم نام با آی دی رکورد جدید باشه از این روش استفاده کردم
نمیدونم حالا چقدر درست باشه اما کار میکنه
$image = Yii::app()->db->createCommand()->select('MAX(id) as max')->from('posts')->queryRow();
با کد بالا آخرین ای دی موجود در جدول posts را بدست آوردم و در نهایت
$image++
کد ای دی که قرار ثبت بشه
البته این کد ها برای فریمورک Yii میباشد اگر خود Query هم خواستی بگو بدم
02-04-1394، 04:51 ب.ظ
اینطوری اگه مثلا آخرین رکورد حذف بشه و بعدش یه رکورد جدید درج بشه به مشکل میخوریم.
02-04-1394، 04:52 ب.ظ
رکوردی که درحال ثبت هستین رو نمیشه ولی بعد از ثبت با فیلد id بهش دسترسی دارین. روشی که گفتین هم مناسب نیست چون ممکنه در فاصله ای که شما ID رو خوندین و میخواین ثبت کنین، یک کاربر دیگه یه عکس آپلود کرده باشه و عکس شما روی عکس اون ذخیره بشه. اول رکورد رو ذخیره کنید و بعد عکس رو آپلود کنید. نهایتش اینه که اگه آپلود امکان پذیر نبود، رکورد رو حذف میکنید.
02-04-1394، 05:08 ب.ظ
این دو تا فرقشون چیه؟
model->oldPrimaryKey
و
model->PrimaryKey
model->oldPrimaryKey
و
model->PrimaryKey
02-04-1394، 05:11 ب.ظ
oldPrimaryKey کلید اصلی هست که وقتی رکورد رو find کردین، داخلش قرار میگیره. primaryKey هم کلید جدیده. از oldPrimaryKey برای وقتی استفاده میشه که میخواین رکورد رو اصلاح کنید و کلید اصلی رو عوض کردین.
$model = Users::findByPk(1); $user->id = 5; $user->save(); // Now, framework uses $user->oldPrimaryKey (1) in WHERE clause to update user #1
02-04-1394، 05:13 ب.ظ
پس استاد با این روش میشه آی دی پستی که ذخیره شده رو بدست آورد ؟
if ($model->save()) { echo $model->id; }
02-04-1394، 05:14 ب.ظ
بله دقیقاً.