Oracle
 sql >> база данни >  >> RDS >> Oracle

php oci_bind_by_name плаващ към числов

Ако не можете да промените десетичния символ на вашата операционна система (или просто не искате), единственото решение за този проблем е да избегнете плаващи параметри. Трябва да въведете стойността директно в sql. Трябва също да сте знае да използва 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);
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. R към Oracle връзка чрез ODBC

  2. Функции на Oracle Datetime (пълен списък)

  3. Как да напиша запомнени процедури с помощта на таблици от друга схема?

  4. SQL - запазване на подреждането въз основа на параметрите на заявката

  5. клауза съюз в sql