的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 "
答案 0 :(得分:0)
...嗯
您不能将-0.06插入整数字段。试试这个:
ALTER TABLE t ALTER COLUMN c TYPE numeric;
然后它应该工作。数字类型对于货币使用是安全的,因为它们无损地转换到/从基数10转换,与浮点不同(我假设这是经济的,因为类型是整数,精度是1/100。