sql >> Database >  >> RDS >> Oracle

php oci_bind_by_name zweven naar numeriek

Als u het decimale symbool van uw besturingssysteem niet kunt wijzigen (of als u dat gewoon niet wilt), is de enige oplossing voor dit probleem het vermijden van float-parameters. U moet de waarde rechtstreeks in de sql invoeren. bewust om en_US te gebruiken als landinstelling voor het juiste decimaalteken.

// 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. Hoe waarden uit een kolom te extraheren en het resultaat in een andere kolom bij te werken

  2. Hoe MariaDB op CentOS 8 te installeren

  3. Simulatie van langlopende Oracle DB-query

  4. Hoe citeer je strings in Postgres