PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : تبدیل یک عدد 11 رقمی به integer



<?php?>
May 21st, 2016, 02:00
یک فیلد دارم که شماره همراه کاربری رو میگیرم باهاش . میخوام بگم که باید از نوع integer باشه .

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


(int) $_POST['tell']


مشکل اینجاست که وقتی کاربر شمارشو مثلا این اعداد وارد میکنه : 09123203857 در خروجی به این عدد تبدیل میشه : 2147483647

چرا؟ :d

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

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

miladtnt
May 23rd, 2016, 11:53
یک فیلد دارم که شماره همراه کاربری رو میگیرم باهاش . میخوام بگم که باید از نوع integer باشه .

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


(int) $_POST['tell']


مشکل اینجاست که وقتی کاربر شمارشو مثلا این اعداد وارد میکنه : 09123203857 در خروجی به این عدد تبدیل میشه : 2147483647

چرا؟ :d

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


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

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

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