0

我遇到了 PHP 和 Oracle 数据库的问题。

当我从 PHP 在表中插入一个数字时,表中的数字变成了奇怪的数字。例如,当我从 PHP 运行查询以将数字“1”插入表中时,它不会存储数字“1”,而是存储到另一个数字,如“4294967296”。当我插入数字“10”时,它变为“4294967306”,依此类推。数据类型为 NUMBER (10,0)。

甲骨文表

当我更改为具有相同表结构的另一个数据库(如 MySQL)时,没有问题。当我插入“1”时,它也会存储“1”。将程序上传到 Ubuntu Server 后也没有问题。Oracle 从 PHP 存储相同的数字。

我使用 Laragon 在我的 Windows 笔记本电脑中使用 Laravel 框架开发 PHP 程序。

我不知道有什么问题。是 PHP、我的笔记本电脑、Laravel、Laragon 还是 Oracle?

感谢您的帮助和回答。

4

1 回答 1

0

我正在使用 mutator 将属性转换为字符串。因为,如果我在表中插入字符串('0')而不是整数(0),它将起作用。下面是 User 模型中的 mutator:

//other User model methods....
    public function setActiveDirectoryAttribute($attrValue){
        $this->attributes['active_directory'] = (string) $attrValue;
    }
于 2017-05-14T01:49:03.030 回答