PDA

View Full Version : مبتدی: ارور عدم درج در دیتابیس



زینب فاطمی
شنبه 14 دی 1398, 14:19 عصر
سلام
اخیرا با ارور زیر مواجه شدم در صورتی که این کد قبلا کار میکرد و مشکلی نداشت . لطفا راهنمایی کنید که چطور میتونم رفعش کنم.


error number 1366
Incorrect integer value ” for column ‘code_shahid’ at row 1


insert into 'tbl_shahid' ('idshahid','name_shahid' ,'family_shahid','code_shahid' ) values ('268356' , 'ahmadali', 'nayery','shahid' )

ASHKANLAEI
شنبه 14 دی 1398, 14:55 عصر
ظاهراً شما باید برای ستون code_shahid عدد صحیح وارد کنید نه رشته (نوشتین 'shahid')

زینب فاطمی
شنبه 14 دی 1398, 15:27 عصر
اخه قبلا کار میکرد یعنی تو فرمم به این فیلد نوع که میرسید یه منوی بازشونده هست مثلا گزینه اول جانباز بود دومی شهید و.. بعد من شهید رو که انتخاب میکردم تو دیتابیس عدد 2 میفتاد .الان داره ایراد میگیره

زینب فاطمی
شنبه 14 دی 1398, 19:48 عصر
وقتی همه فیلدها رو پر میکنم فرم ارسال میشه ولی وقتی فیلد رو خالی میذارم پیام میده . سرچ کردم یه جا نوشته بود :در فایل my.ini مقدار sql_mode = '' قرار بدید
من نمیدونم sql_mode کجاست .

parsboy
یک شنبه 15 دی 1398, 07:35 صبح
اخه قبلا کار میکرد یعنی تو فرمم به این فیلد نوع که میرسید یه منوی بازشونده هست مثلا گزینه اول جانباز بود دومی شهید و.. بعد من شهید رو که انتخاب میکردم تو دیتابیس عدد 2 میفتاد .الان داره ایراد میگیره
باسلام
اصلا كار هم بر فرض مثال كه بكند كاملا اشتباه است !!!
شما وقتي مقدار پيشفرض فيلد رو عدد گذاشتيد چرا بايد رشته وارد كنيد ؟! اگر قرار است رشته بزاريد text يا varchar بگذاريد
درضمن ميتونيد از راديو باكس هم استفاده كنيد و مقدار بولين يا همان true , false بريزيد داخل ديتابيس كه خيلي بهتر است

ASHKANLAEI
یک شنبه 15 دی 1398, 14:02 عصر
البته شما میتونید در php یک آرایه از مقادیر به ترتیب بسازید و ببینید که کدوم ایندکس از آرایه انتخاب شده.

زینب فاطمی
یک شنبه 15 دی 1398, 14:38 عصر
ببینید من ساختار اون قسمت رو درست کردم ولی رفت روی فیلد بعدی که خالی گذاشته بودم الان مسئله سر اینه که من میخوام فرم رو کامل پر نکنم و ارسال کنم ولی ارور میده ارور هم همون قبلی هست یعنی :
Incorrect integer value: '' for خب فیلید بعدی که الان روش گیر کرده عددی هست من خالی گذاشتم چرا تو دیتابیس بصورت خودکار نال یا 0 نمیفته ؟ وقتی پر میکنم فرم ارسال میشه وقتی خالی میذارم ارور میده.

plague
یک شنبه 15 دی 1398, 15:54 عصر
یه چیزی هست به اسم strict mode وقتی فعال باشه باید حتما مقدار مناسب با اون فیلد رو بفرستی وگرنه اررور میده
اگه فعال نباشه و مقدار نا مناسب بفرستی مثلا رشته برای فیلد int مقدار دیفالت که 0 باشه توش قرار میگیره
به پشتیبانیت پیام بده strict mode رو غیر فعال کنه یا اگه vps داری همونی که خوندی جواب میده

اگه دسترسی داشته باشه تو phpmyadmin بخش sql این دستور رو بزنی هم جواب میده


set global sql_mode='';

parsboy
سه شنبه 17 دی 1398, 07:52 صبح
ببینید من ساختار اون قسمت رو درست کردم ولی رفت روی فیلد بعدی که خالی گذاشته بودم الان مسئله سر اینه که من میخوام فرم رو کامل پر نکنم و ارسال کنم ولی ارور میده ارور هم همون قبلی هست یعنی :
Incorrect integer value: '' for خب فیلید بعدی که الان روش گیر کرده عددی هست من خالی گذاشتم چرا تو دیتابیس بصورت خودکار نال یا 0 نمیفته ؟ وقتی پر میکنم فرم ارسال میشه وقتی خالی میذارم ارور میده.
به صورت پيشفرض ميتونيد NULL بزاريد فيلدمورد نظرتون رو در قسمت phpmyadmin

زینب فاطمی
سه شنبه 17 دی 1398, 22:35 عصر
خیلی ممنونم فیلد ها نال پذیر بودن مشکل از فعال بودن strict mode بود و همونطور که plague (https://barnamenevis.org/member.php?123420-plague) گفتن به پشتیبانی پیام دادم که strict mode رو غیرفعال کنن و درست شد . خدا خیرتون بده .
میشه بگید چجوری شده این فعال شده ؟

plague
سه شنبه 17 دی 1398, 22:39 عصر
بعضی وقتا وقتی آپدیت میکنن سرور رو این اتفاق میفته که تنظیمات تغییر میکنه به تنظیمات دیفالت

زینب فاطمی
سه شنبه 17 دی 1398, 22:42 عصر
بعضی وقتا وقتی آپدیت میکنن سرور رو این اتفاق میفته که تنظیمات تغییر میکنه به تنظیمات دیفالت
درسته سرور رو جا به جا کرده بودن بازم ممنونم لطف کردید .