Пробовал, все одно сбоит...
В общем, вот что происходит, опишу еще раз...
Сбой происходит в двух случаях.
В первом случае, когда я принимаю переменную из $_POST и явно определяю ее тип как float, чтобы ничего лишнего не попало от юзера.
На локалхосте данные заносятся в поле нормально, а на сервере как целое число. Независимо от того, какого типа поле в базе и переменная, float, double или decimal.
if(isset($_POST['equity']))
{
$equity = (float) $_POST['equity'];
}
Но если переменную не приводить к типу float (или к double, decimal) явно, то данные на хостинге вносятся в базу без проблем.
if(isset($_POST['equity']))
{
$equity = $_POST['equity'];
}
Во втором случае, данные не вносятся корректно если переменная получена в результате вычислений.
Например, результат расчета почти всегда является числом с плавающей точкой.
$result = round($koeff * ($data['value1']/$data['value2']),2)*100;
и если значение переменной $result вывести с помощью echo то все нормально, например, будет значение 125.84
но при отправке в базу
$query = "UPDATE `test1` SET `data`='$data' WHERE`id`='$id'";
$res = mysql_query($query,$db)
заносится целое число в поле float, несмотря на то, что в переменной нормальное значение. А получается, как-будто в базу передается в любом случае int
Тип таблиц MyISAM, кодировка utf8_bin
Если в phpMyAdmin выполнить запрос, то данные вносятся корректно.
Запрос вида:
UPDATE `test2` SET `float`=456.84 WHERE `id`=1
выполнился успешно. Проблема возникает именно при работе с переменными, в которых передается значение в запрос.
Значит проблема скорее всего в настройках php. В поддержке хостера посоветовали установить необходимые параметры php, в файле php.ini, в корне сайта.
Теперь вопрос, какие параметры мне нужно установить в php.ini чтобы на сервере хостера все работало так-же как и у меня?