0

PostgreSQL:

create table t(c real);

PHP PDO:

$sql= 'insert into t (c) values (:c)';
$stmt = $dbh->prepare ( $sql );
$stmt->bindParam ( ':c',-0.06 );
$stmt->execute ();

输出

Erreur : SQLSTATE[22P02]: Invalid text representation: 7 ERROR: invalid input syntax for integer: "-0.06 "
4

1 回答 1

0

嗯……

您不能将 -0.06 插入整数字段。尝试这个:

ALTER TABLE t ALTER COLUMN c TYPE numeric;

然后它应该可以工作。数字类型对于货币使用是安全的,因为它们无损地转换为基数 10,与浮点数不同(我假设这是金融的,因为类型是整数并且精度是 1/100。

于 2013-11-02T06:17:20.867 回答