-
تبدیل یک عدد 11 رقمی به integer
یک فیلد دارم که شماره همراه کاربری رو میگیرم باهاش . میخوام بگم که باید از نوع integer باشه .
من از کد زیر برای این کار دارم استفاده میکنم :
کد PHP:
(int) $_POST['tell']
مشکل اینجاست که وقتی کاربر شمارشو مثلا این اعداد وارد میکنه : 09123203857 در خروجی به این عدد تبدیل میشه : 2147483647
چرا؟
یعنی باید این جور عدد هارو به صورت string ثبت کنم؟ با توابع زیادی تبدیل نوع کردم که نشد - مثلا settype - intval ولی نتیجه مشابه داشت .
-
-
May 21st, 2016 02:00
# ADS
-
عضو دائم
پاسخ : تبدیل یک عدد 11 رقمی به integer
سلام، به دلیل اینکه اینتیجر ها در php سی و دو بیتی هستند و عدد شما خیلی بزرگ است، اگر برای ذخیره در دیتابیس میخواهید خود پی اچ پی از فرمت نامبریک میفهمد و برای ذخیره شماره تلفن از دیتا تایپ bigint یا varchar آستفاده کنید.
ویرایش توسط T.Toosi : May 21st, 2016 در ساعت 03:52
-
-
عضو انجمن
پاسخ : تبدیل یک عدد 11 رقمی به integer

نوشته اصلی توسط
<?php?>
یک فیلد دارم که شماره همراه کاربری رو میگیرم باهاش . میخوام بگم که باید از نوع integer باشه .
من از کد زیر برای این کار دارم استفاده میکنم :
کد PHP:
(int) $_POST['tell']
مشکل اینجاست که وقتی کاربر شمارشو مثلا این اعداد وارد میکنه : 09123203857 در خروجی به این عدد تبدیل میشه : 2147483647
چرا؟
یعنی باید این جور عدد هارو به صورت string ثبت کنم؟ با توابع زیادی تبدیل نوع کردم که نشد - مثلا settype - intval ولی نتیجه مشابه داشت .
دلیلی نداره شماره رو بصورت یه عدد تو دیتابیس ذخیره کنین !
بصورت text ذخیره کنین
وقتی عدد ذخیره میکنین دیتابیس یسری امکاناتی میده که نمیتونه برا عدد های بزرگتر بده ! و اون عدد 2147483647 در واحد زمان هست که حدود 40 سال بعده (بدردتون نمیخوره )
-