TalkPHP
 
 
Account Login
Latest Articles
» The basic usage of PHPTAL, a XML/XHTML template library for PHP
» Vulnerable methods and the areas they are commonly trusted in.
» Simple way to protect a form from bot
» The Basics On: How Session Stealing Works
» How to keep your forms from double posting data
IRC Channel
IRC Speech Bubble Join the friendly bunch on IRC...
(#TalkPHP on Freenode)

...Also available via a web interface.

See this thread for information on the TalkPHP Free Hugs Initiative™. Subject to availability.
Associates
Associates
CSS Tutorials
Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old 05-27-2010, 10:03 PM   #1 (permalink)
The Contributor
 
nefus's Avatar
 
Join Date: Nov 2007
Location: Nashville, TN
Posts: 66
Thanks: 20
nefus is on a distinguished road
Default insert cast

How in the word do you use CAST with mysql? I've tried google for a basic example with no luck. Could somebody help me out with a basic example?

I am trying to insert something like 555.555 into a float column but I either get 555 or 555.6 in the column after the insert. *shrug*

Code:
$station_insert = mysqli_prepare($link, "INSERT INTO stations (Company_Name, station_name, Address, City, State, Country, Zip, Phone, Lat, Lon ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");


mysqli_stmt_bind_param($station_insert, 'ssssssiiss', $company_name, $station_name, $address, $city, $state, $country, $zip_code, $phone, $lat, $lon);
I've tried ii, ss and dd on the when binding... is CAST what I need to use for the lat and lon floats?
__________________
I am not a programmer, nor do I play one on tv.
nefus is offline  
Reply With Quote
Old 05-28-2010, 10:50 AM   #2 (permalink)
The Prestige
Advanced Programmer Top Contributor Good Samaritan 
 
sketchMedia's Avatar
 
Join Date: Oct 2007
Location: Manchester, UK
Posts: 854
Thanks: 32
sketchMedia is on a distinguished road
Default

Can I see your table structure?
__________________
mysql> SELECT * FROM `users` WHERE `users`.`clue` > 0;
Empty set (0.00 sec)
sketchMedia is offline  
Reply With Quote
Old 05-28-2010, 01:59 PM   #3 (permalink)
The Contributor
 
nefus's Avatar
 
Join Date: Nov 2007
Location: Nashville, TN
Posts: 66
Thanks: 20
nefus is on a distinguished road
Default

Sure...

CREATE TABLE IF NOT EXISTS `stations` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`Company_Name` varchar(30) COLLATE latin1_general_ci NOT NULL,
`station_name` varchar(30) COLLATE latin1_general_ci NOT NULL,
`Address` varchar(30) COLLATE latin1_general_ci NOT NULL,
`City` varchar(30) COLLATE latin1_general_ci DEFAULT NULL,
`State` varchar(30) COLLATE latin1_general_ci DEFAULT NULL,
`Country` varchar(20) COLLATE latin1_general_ci DEFAULT NULL,
`Zip` varchar(11) COLLATE latin1_general_ci DEFAULT NULL,
`Phone` varchar(12) COLLATE latin1_general_ci DEFAULT NULL,
`Lat` float NOT NULL,
`Lon` float NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=19 ;
__________________
I am not a programmer, nor do I play one on tv.
nefus is offline  
Reply With Quote
Old 05-28-2010, 02:41 PM   #4 (permalink)
The Prestige
Advanced Programmer Top Contributor Good Samaritan 
 
sketchMedia's Avatar
 
Join Date: Oct 2007
Location: Manchester, UK
Posts: 854
Thanks: 32
sketchMedia is on a distinguished road
Default

Can't replicate this unfortunately, I don't have mysqli installed (for whatever reason) on my works dev machine.

Something is rounding it somewhere, I'll bet its mysqli, just try dumping it as a string type I don't think mysql will mind if it has quotes around it or not. Failing that there must be some form of rounding error at mysql's end, try specifiying the mantissa/exponent in the float args:
Code:
ALTER TABLE `stations` MODIFY COLUMN `lat` FLOAT(6,3)  DEFAULT NULL;
ALTER TABLE `stations` MODIFY COLUMN `lon` FLOAT(6,3)  DEFAULT NULL;
If not I'll have to wait to get home and try mysqli on my home web server.
__________________
mysql> SELECT * FROM `users` WHERE `users`.`clue` > 0;
Empty set (0.00 sec)
sketchMedia is offline  
Reply With Quote
The Following User Says Thank You to sketchMedia For This Useful Post:
nefus (05-28-2010)
Old 05-28-2010, 03:51 PM   #5 (permalink)
The Contributor
 
nefus's Avatar
 
Join Date: Nov 2007
Location: Nashville, TN
Posts: 66
Thanks: 20
nefus is on a distinguished road
Default

That didn't work at all. The table altered but the saved results were not showing up correctly.

Do I have to format the variable as a float before it gets inserted?
__________________
I am not a programmer, nor do I play one on tv.
nefus is offline  
Reply With Quote
Old 06-09-2010, 08:29 PM   #6 (permalink)
The Contributor
 
nefus's Avatar
 
Join Date: Nov 2007
Location: Nashville, TN
Posts: 66
Thanks: 20
nefus is on a distinguished road
Default

Btw, for anyone who wants to know how I got around this... I changed it to a double instead of float and it worked. Don't use the above alter table or it messes things up too. Just make sure you use 'd' when binding.
__________________
I am not a programmer, nor do I play one on tv.
nefus is offline  
Reply With Quote
Reply



Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Similar Threads
Thread Thread Starter Forum Replies Last Post
Value set limitations on MySQL INSERT? delayedinsanity MySQL & Databases 3 10-22-2009 05:33 PM
how do you insert html into your database? sarmenhb General 3 09-13-2008 12:08 PM
how to insert html or php code into a table? sarmenhb Absolute Beginners 7 09-07-2008 12:23 PM
Mysql problem, most likely related to left join Village Idiot MySQL & Databases 6 01-04-2008 06:09 AM
Insert data into two tables with one query CMellor MySQL & Databases 5 12-10-2007 10:46 AM


All times are GMT. The time now is 11:47 AM.

 
     

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.1.0
Inactive Reminders By Icora Web Design