• اطلاعیه ها

    • Morteza

      باهم بسازیم: اطلس ووکامرس و وردپرس   14/07/96

      تاپیک ایجاد شده برای بحث در جهت ایجاد یک منبع، ویکی، صفحات توضیحی و یا بخش آموزشی جامع برای وردپرس و متعلقات مختلف آن است. لطفا جهت مشارکت در این بحث، ارائه پیشنهاد و یا انتقاد به تاپیک فوق مراجعه کنید. باهم بسازیم: اطلس ووکامرس و وردپرس
Anisi

مشکل با دریافت آیدی آخرین رکورد درج شده در دیتابیس

18 پست در این موضوع قرار دارد

سلام

من از دستور


$order_id = $dbModel->insert_id;

برای دریافت آخرین رکورد درج شده در جدول استفاده می کنم، اما خطای زیر رو میده!


Notice: Undefined property: dbModel::$insert_id

ویرایش شده در توسط Anisi
0

به اشتراک گذاری این پست


لینک به پست

کوئری شما چی هست؟

اون کلاس چی هست؟

از روی این تیکه کد که نمیشه چیزی گفت

1

به اشتراک گذاری این پست


لینک به پست

کوئری شما چی هست؟

اون کلاس چی هست؟

از روی این تیکه کد که نمیشه چیزی گفت

کوئریم INSERT هست.

کلاس هم کلاس ارتباط با دیتابیس mysqli هست که کدش رو قبلا در این تاپیک گذاشتم:

0

به اشتراک گذاری این پست


لینک به پست

بصورت زیر استفاده کنید:

$last_id = $this->con->insert_id;

1

به اشتراک گذاری این پست


لینک به پست

بصورت زیر استفاده کنید:

$last_id = $this->con->insert_id;

نه! آخه $dbModel عضوی از کلاس نیست. یک شیئه که در خود تابع ایجاد شده.

ویرایش شده در توسط Anisi
0

به اشتراک گذاری این پست


لینک به پست

الان به این شکله؟

$dbModel = کوئری

0

به اشتراک گذاری این پست


لینک به پست

الان به این شکله؟

$dbModel = کوئری

به این شکله:


$myDb = new dbModel;
$query = "INSERT INTO test (username, password)
VALUES ($username, $password)";
$result = $myDb-> query($query);
$last_id = $myDb->insert_id;

0

به اشتراک گذاری این پست


لینک به پست

دوستان، آیا مشکلی در کدها هست یا خطا از جای دیگه ای آب می خوره؟

ویرایش شده در توسط Anisi
0

به اشتراک گذاری این پست


لینک به پست

این رو تست کنید:

$last_id = $result->insert_id;

0

به اشتراک گذاری این پست


لینک به پست

این رو تست کنید:

$last_id = $result->insert_id;

این رو هم تست کرده بودم، جواب نداد!

0

به اشتراک گذاری این پست


لینک به پست

طبق این کدهایی که دادید باید جواب میداد.

1

به اشتراک گذاری این پست


لینک به پست

آخه جواب نمیده! چه باید کرد؟ من خودمم هرچی گشتم همین کد فقط بود.

ویرایش شده در توسط Anisi
0

به اشتراک گذاری این پست


لینک به پست

اینو تست کنید


$id = mysqli_insert_id($link);

link کانکشن دیتابیس هست

2

به اشتراک گذاری این پست


لینک به پست

کد اخری که Parsa گذاشته باید جواب بده


Notice: Undefined property: dbModel::$insert_id

ایا همچین پراپرتی برای کلاستون ایجاد کردین که دارین فراخونیش میکنین؟(معنی این پیغام همین هست)

کد قسمتی رو که این پراپرتی رو مقدار دهی میکنین تو کلاس مدل رو بزارین

3

به اشتراک گذاری این پست


لینک به پست

کد اخری که Parsa گذاشته باید جواب بده


Notice: Undefined property: dbModel::$insert_id

ایا همچین پراپرتی برای کلاستون ایجاد کردین که دارین فراخونیش میکنین؟(معنی این پیغام همین هست)

کد قسمتی رو که این پراپرتی رو مقدار دهی میکنین تو کلاس مدل رو بزارین

این پراپرتی پیش فرض mysql هست. اگر اشتباه می کنم دوستان تصحیح کنن!

0

به اشتراک گذاری این پست


لینک به پست

درسته مربوط به mysqli هست

اما شما دارید از کلاس ساخته شده خودتون استفاده میکنید

بهتره در کلاستون insert_id را به متغییر لوکال نسبت بدهید و اون رو استفاده کنید

4

به اشتراک گذاری این پست


لینک به پست

این پراپرتی پیش فرض mysql هست. اگر اشتباه می کنم دوستان تصحیح کنن!

اشتباه شما همینجاس همون طور که پارسا گفت شما دارین از کلاس ساخته شده توسط خودتون استفاده میکنین به همین خاطر خطا میده که این خاصیت رو پیدا نمیکنه

شما یه متغییر public اول کلاست تعریف کن به اسم

public $insert_id
;

و در انتهای تابع query کلاست

$insert_id = $this->con->insert_id;

اونو مقدار دهی کن تا بتونی


$myDb = new dbModel;
$query = "INSERT INTO test (username, password)
VALUES ($username, $password)";
$result = $myDb-> query($query);
$last_id = $myDb->insert_id;

ازش استفاده کنی یا یه تابع مجزا براش تو کلاست درست کن که اینو برای فراخونی کنه

هر کلاسی محدوده(scop)خودشو داره و خاصیت کلاس هم اینه که تا چیزی رو درونش Public نکنی به هیچ کد دیگه ای اجازه دسترسی به اون چیز رو نمیده

4

به اشتراک گذاری این پست


لینک به پست

عجب اشتباهی! بعضی وقتا کارایی می کنما. :wacko:

ممنون

ویرایش شده در توسط Anisi
0

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری