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