PDA

View Full Version : سوال: مشکل در ثبت شدن نادرست اطلاعات عدد های بزرگ



mokhtasatxyz
سه شنبه 30 اردیبهشت 1393, 18:38 عصر
سلام
من در ساختار db برای فیلد های شماره تلفن همراه ، کد ملی، کد پستی و ... از نوع داده bigint با طول 20 استفاده نموده ام و کوئری هم شبیه به این کد است ولی داده های گفته شده که طول انها 10 رقم است را با اعدادی بی ربط ذخیره می کند که وقتی برسی نمودم اعداد ذخیره شده در محدوده نوع داده int ذخیره می شود یعنی مثلا کد ملی 2470000000 به صورت 2147483647 که تقریبا مرز اعداد قابل ذخیره در نوغ int است ذخیره می گردد چرا؟




INSERT INTO TABLE (tel_mo_kf, code_posti, meli_code) VALUES (%s, %s, %s)",
GetSQLValueString($b, "int"),
GetSQLValueString($e, "int"),
GetSQLValueString($g, "int");

MRmoon
سه شنبه 30 اردیبهشت 1393, 20:00 عصر
در سیستم 32 بیت اعداد بین 2147483647- و 2147483647 قرار دارند
در سیستم 64 بیت اعداد 9223372036854775808- و 9223372036854775807 قرار دارند.

میتونید حداکثر سایز اینتگر رو با چاپ ثابت PHP_INT_MAX در php ببینید.

mokhtasatxyz
سه شنبه 30 اردیبهشت 1393, 22:28 عصر
من باید چکار کنم تا اعدادی بزرگ مانند کد ملی و شماره موبایل و ... را در دیتابیس ذخیره کنم .البته با نوع داده عددی ،چون می دانم میتوان این ارقام را به صورت رشته ای نبز ذخیره نمود

mokhtasatxyz
سه شنبه 30 اردیبهشت 1393, 22:32 عصر
در سیستم 32 بیت اعداد بین 2147483647- و 2147483647 قرار دارند
در سیستم 64 بیت اعداد 9223372036854775808- و 9223372036854775807 قرار دارند.

منظور شما از سیستم 32 بیت و 64 بیت در یک سایت چیست؟مگر این تعاریف در سایت وجود دارند؟

numberone1
سه شنبه 30 اردیبهشت 1393, 22:33 عصر
اعداد با طول 11 کاراکتر میشه int بیشتر از اون bigint تا طول 20 کاراکتر

mokhtasatxyz
چهارشنبه 31 اردیبهشت 1393, 08:14 صبح
اعداد با طول 11 کاراکتر میشه int بیشتر از اون bigint تا طول 20 کاراکتر
خب من هم در db از bigint استفاده نموده ام ولی اعداد ذخیره شده تفاوت دارد چکار باید بکنم؟
چه نوع فیلدی برای ذخیره کد ملی در دیتابیس مناسب است؟
ایا در کد های من مشکلی وجود دارد؟

_mojitaba_
چهارشنبه 31 اردیبهشت 1393, 10:47 صبح
برای کد ملی varchar مناسب تر نیست؟

Mori Bone
چهارشنبه 31 اردیبهشت 1393, 10:52 صبح
کد ملی و کدپستی و موبایل و از این دسته فیلدها varchar باید باشه