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

  • Автор темы Автор темы mike
  • Дата начала Дата начала

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 , например.
Но может быть существуют какие-то другие варианты, о которых я не знаю?
 
Спасибо.

-~{}~ 18.11.05 13:12:

Еще вопрос: Вышеописанное имеет место всегда в таких случаях?
Просто у меня такое в первый раз. Ранее не возникало...
Может это зависит как-то от настроек сервера?
 
Напрямую зависит от настроек сервера, т.е. от языковых настроек (дробный разделитель ,). На многих Российских хостингах именно так. Несколько раз попадал, когда на хостинге после полугода нормальной работы скриптов вдруг решили поменять настройки. Пришлось расставлять number_format
 
>ПХП в результате произведения $var1*$var2 возвращает нецелое с разделителем "," что не подходит для sql-запроса.

PHP 3 ?
 
Да нет 4.

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

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