【发布时间】:2020-10-01 11:12:28
【问题描述】:
我正在使用 laravel,有时将非常大的数字与 postgres 结合使用。在有问题的情况下,我试图将数据存储在此表中。
Schema::create('address_statistics', function (Blueprint $table) {
$table->id();
$table->string('address')->nullable()->index();
$table->bigInteger('transaction_count');
$table->bigInteger('balance');
$table->dateTime('first_transaction');
$table->dateTime('last_transaction');
});
示例(伪代码):
$testnumber = "13159750.11391604"; //comes from an API as string
$this->addressStatistic->balance = floatval($response["result"]["amount"]) * 100000000;
$this->addressStatistic->save();
在这种情况下,我收到一个错误:
PDOException: SQLSTATE[22P02]: Invalid text representation: 7 ERROR: invalid input syntax for type bigint: "1.3159750113916E+15"
有什么办法可以解决吗?
【问题讨论】:
-
不确定 Postgresql。但试试这个。您的 DB 列
balance具有数据类型bigInteger并且您正在尝试向该列插入科学记数法(floatval($response["result"]["amount"]) * 100000000创建科学记数法)。将数据类型转换为FLOAT或DOUBLEcheck here 或使用数字文字而不是科学记数法。
标签: laravel postgresql bigint