نمایش نتایج: از شماره 1 تا 3 , از مجموع 3

موضوع: تبدیل یک عدد 11 رقمی به integer

  1. #1
    عضو انجمن
    تاریخ عضویت
    Jun 2015
    نوشته ها
    194
    تشکر تشکر کرده 
    213
    تشکر تشکر شده 
    22
    تشکر شده در
    20 پست

    پیش فرض تبدیل یک عدد 11 رقمی به integer

    یک فیلد دارم که شماره همراه کاربری رو میگیرم باهاش . میخوام بگم که باید از نوع integer باشه .

    من از کد زیر برای این کار دارم استفاده میکنم :
    کد PHP:
    (int) $_POST['tell'
    مشکل اینجاست که وقتی کاربر شمارشو مثلا این اعداد وارد میکنه : 09123203857 در خروجی به این عدد تبدیل میشه : 2147483647

    چرا؟

    یعنی باید این جور عدد هارو به صورت string ثبت کنم؟ با توابع زیادی تبدیل نوع کردم که نشد - مثلا settype - intval ولی نتیجه مشابه داشت .

  2. # ADS




     

  3. #2
    عضو دائم T.Toosi آواتار ها
    تاریخ عضویت
    Jun 2015
    نوشته ها
    1,071
    تشکر تشکر کرده 
    278
    تشکر تشکر شده 
    2,936
    تشکر شده در
    1,329 پست

    پیش فرض پاسخ : تبدیل یک عدد 11 رقمی به integer

    سلام، به دلیل اینکه اینتیجر ها در php سی و دو بیتی هستند و عدد شما خیلی بزرگ است، اگر برای ذخیره در دیتابیس میخواهید خود پی اچ پی از فرمت نامبریک میفهمد و برای ذخیره شماره تلفن از دیتا تایپ bigint یا varchar آستفاده کنید.
    ویرایش توسط T.Toosi : May 21st, 2016 در ساعت 03:52

  4. #3
    عضو انجمن miladtnt آواتار ها
    تاریخ عضویت
    Mar 2016
    محل سکونت
    TabriZ
    نوشته ها
    247
    تشکر تشکر کرده 
    219
    تشکر تشکر شده 
    376
    تشکر شده در
    275 پست

    پیش فرض پاسخ : تبدیل یک عدد 11 رقمی به integer

    نقل قول نوشته اصلی توسط <?php?> نمایش پست ها
    یک فیلد دارم که شماره همراه کاربری رو میگیرم باهاش . میخوام بگم که باید از نوع integer باشه .

    من از کد زیر برای این کار دارم استفاده میکنم :
    کد PHP:
    (int) $_POST['tell'
    مشکل اینجاست که وقتی کاربر شمارشو مثلا این اعداد وارد میکنه : 09123203857 در خروجی به این عدد تبدیل میشه : 2147483647

    چرا؟

    یعنی باید این جور عدد هارو به صورت string ثبت کنم؟ با توابع زیادی تبدیل نوع کردم که نشد - مثلا settype - intval ولی نتیجه مشابه داشت .

    دلیلی نداره شماره رو بصورت یه عدد تو دیتابیس ذخیره کنین !

    بصورت text ذخیره کنین

    وقتی عدد ذخیره میکنین دیتابیس یسری امکاناتی میده که نمیتونه برا عدد های بزرگتر بده ! و اون عدد
    2147483647 در واحد زمان هست که حدود 40 سال بعده (بدردتون نمیخوره )


اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. اکسپلویت جدید MySQL 5.6.35 And 5.7.17 Integer Overflow
    توسط IrIsT در انجمن اخبار دنیای فناوری
    پاسخ ها: 0
    آخرين نوشته: May 3rd, 2017, 17:26
  2. پاسخ ها: 0
    آخرين نوشته: March 18th, 2013, 19:06

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •