यदि आप अपने ओएस के दशमलव प्रतीक को नहीं बदल सकते हैं (या आप बस नहीं चाहते हैं), तो इस समस्या का एकमात्र समाधान फ्लोट पैरामीटर से बचना है। आपको सीधे एसक्यूएल में मान दर्ज करना होगा। आपको भी होना चाहिए सही दशमलव विभाजक के लिए en_US को लोकेल के रूप में उपयोग करने के लिए जागरूक।
// 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);
}