sql >> Databasteknik >  >> RDS >> Oracle

php oci_bind_by_name flyter till numerisk

Om du inte kan ändra decimalsymbolen för ditt operativsystem (eller om du helt enkelt inte vill), är den enda lösningen för detta problem att undvika floatparametrar. Du måste ange värdet direkt i sql. Du måste också vara medveten om att använda en_US som språk för rätt decimalavgränsare.

// 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. Kan jag pivotera datumrader till kolumner utan att behöva ange datum i pivoten? Oracle SQL

  2. Returnera endast rader vars maxvärde är mindre än vad som anges

  3. MySQL - välj data från databasen mellan två datum

  4. Migrerar trigger från Oracle 11g till Postgresql 8.4