sql >> Databáze >  >> RDS >> Oracle

php oci_bind_by_name plovoucí na číselné

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);
}


  1. Nasazení serveru Percona do hybridního cloudu

  2. Jaký je rozdíl mezi VARCHAR a CHAR?

  3. Zadávání dat z formuláře do databáze PDO

  4. Je rychlejší převést na varchar nebo varchar na int při porovnání v MySQL?