Pokud nemůžete změnit desetinný symbol vašeho operačního systému (nebo to prostě nechcete), jediným řešením tohoto problému je vyhnout se plovoucím parametrům. Hodnotu musíte zadat přímo do sql. vědomi si použití en_US jako národního prostředí pro správný oddělovač desetinných míst.
// Ensure that the period is used as decimal separator when converting float to string
setlocale(LC_ALL, 'en_US');
// Generate SQL
// ...
$variables = array();
if(is_int($myValue))
{
$sql .= ':MYVALUE';
$variables[':MYVALUE'] = $myValue;
}
else if(is_float($myValue))
{
$sql .= (string) $myValue;
}
// ...
// Generate statement
// $resource = oci_parse(...);
// Bind parameters (if neccessary)
if(count($variables) > 0)
{
foreach($variables as $name => &$variable)
oci_bind_by_name($resource, $name, $variable);
}