Anisi

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

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

سلام

من از دستور


$order_id = $dbModel->insert_id;

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


Notice: Undefined property: dbModel::$insert_id

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

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


لینک به پست

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

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

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

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


لینک به پست

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

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

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

کوئریم INSERT هست.

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

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


لینک به پست

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

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

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


لینک به پست

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

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

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

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

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


لینک به پست

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

$dbModel = کوئری

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


لینک به پست

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

$dbModel = کوئری

به این شکله:


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

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


لینک به پست

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

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

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


لینک به پست

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

$last_id = $result->insert_id;

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


لینک به پست

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

$last_id = $result->insert_id;

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

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


لینک به پست

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

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


لینک به پست

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

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

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


لینک به پست

اینو تست کنید


$id = mysqli_insert_id($link);

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

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


لینک به پست

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


Notice: Undefined property: dbModel::$insert_id

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

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

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


لینک به پست

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


Notice: Undefined property: dbModel::$insert_id

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

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

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

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


لینک به پست

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

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

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

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


لینک به پست

این پراپرتی پیش فرض 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 نکنی به هیچ کد دیگه ای اجازه دسترسی به اون چیز رو نمیده

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


لینک به پست

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

ممنون

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

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


لینک به پست

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

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

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

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


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

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

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


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