laravel - Laravel 7.x:PDOException:SQLSTATE [22P02]:无效的文本表示:7 错误:bigint 类型的输入语法无效
问题描述
我正在使用 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"
有没有办法绕过它?
解决方案
在插入数据库之前,我使用 inval() 显式解析了数字。现在它按预期工作!
推荐阅读
- python - 从Dataframe中的字符串(列表)中过滤项目
- python - 在 SQLite 中根据今天的日期创建生成列
- python - PyGame角色不向左移动
- mysql - 如果我对非索引字段进行查询,是否使用全表扫描
- python - 执行 SQLite SELECT 替换整数和字符串变量列表?
- python - 从线程模块获取响应
- vue.js - Pass HTML markup into Vue.js Swiper carousel component
- arrays - 如何在谷歌表格公式中找到给定数据集(日期值对)的最低值和日期?
- python - 将 Period 对象转换为 Datetime
- python - 以内存有效的方式读取 S3 gzip 文件