Что делать с запятой в запросе?

mike

pmcoder
Что делать с запятой в запросе?

Есть следующее:

PHP:
$sql = "INSERT INTO table SET value=".$var1*$var2;
где
value имеет тип float,
$var1*$var2 - нецелое,например, 1,25

получается запрос
PHP:
INSERT INTO table SET value=1,25
необходимо
PHP:
INSERT INTO table SET value=1.25
Другими словами:
ПХП в результате произведения $var1*$var2 возвращает нецелое с разделителем "," что не подходит для sql-запроса.

Можно, конечно, заменить запятую с помощью substr_replace , например.
Но может быть существуют какие-то другие варианты, о которых я не знаю?
 

mike

pmcoder
Спасибо.

-~{}~ 18.11.05 13:12:

Еще вопрос: Вышеописанное имеет место всегда в таких случаях?
Просто у меня такое в первый раз. Ранее не возникало...
Может это зависит как-то от настроек сервера?
 

Dr_Jones

Новичок
Напрямую зависит от настроек сервера, т.е. от языковых настроек (дробный разделитель ,). На многих Российских хостингах именно так. Несколько раз попадал, когда на хостинге после полугода нормальной работы скриптов вдруг решили поменять настройки. Пришлось расставлять number_format
 

tony2001

TeaM PHPClub
>ПХП в результате произведения $var1*$var2 возвращает нецелое с разделителем "," что не подходит для sql-запроса.

PHP 3 ?
 

mike

pmcoder
Да нет 4.

Я попытался разобраться, создал отдельный скрипт на том же хостинге
PHP:
 $var = 1.2568;
 $var2 = 5;
 $sql.= "feed_cost = ".$var*$var2;
 echo $sql;
выдает с точкой;

копирую, его в скрипт где возникла проблемма - выдает с запятой. Просто мистика какая-то. Единственное отличие - скрипт, в котором возникает проблемма - описание класа, т.е. функция класса, генерирующая запрос. Я не думаю, что это имеет значение, но больше подумать не на что. Просто счас некогда разбираться. number_format помог.
 
Сверху