- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 DEV 和 PROD 中有不同的数据库版本。 DEV 使用的是 Postgres 9.5,而 PROD 使用的是 9.4 版。它适用于 DEV,但不适用于 PROD。我只想读取 BIGINT 字段的值。它们被默默地限制为 MAX_INT!我已经在模型规则中将字段设置为“数字”。如何读取正确的值?
class KwController extends \yii\console\Controller {
public function actionTest() {
$accounts = Account::find()->all();
foreach ($accounts as $account) {
echo "$account->google_id\n";
//echo $account->google_id.PHP_EOL;
//printf("%s\n", $account->google_id);
}
}
class Account extends \yii\db\ActiveRecord
{
public function rules()
{
return [
[['google_id', 'bing_id'], 'number'],
[['name'], 'string', 'max' => 255]
];
}
dev=# \d account
Table "public.account"
Column | Type | Modifiers
-----------+------------------------+------------------------------------------------------
id | integer | not null default nextval('account_id_seq'::regclass)
name | character varying(255) |
google_id | bigint |
bing_id | bigint |
prod=> \d account
Table "public.account"
Column | Type | Modifiers
-----------+------------------------+------------------------------------------------------
id | integer | not null default nextval('account_id_seq'::regclass)
name | character varying(255) |
google_id | bigint |
bing_id | bigint |
dev=# select * from account;
id | name | google_id | bing_id
----+-----------+------------+---------
1 | Test | 1304682651 |
2 | Account 2 | 2712796608 |
prod=> select * from account;
id | name | google_id | bing_id
----+-----------+------------+---------
1 | Account 1 | 3797444208 |
2 | Account 2 | 8817806877 |
3 | Account 3 | 3199585540 |
4 | Account 4 | 1596230720 |
5 | Account 5 | 1389831585 |
$ /usr/sbin/postgres --version
postgres (PostgreSQL) 9.5.2
prod=> \c
psql (9.5.2, server 9.4.4)
我希望输出是
3797444208
8817806877
3199585540
1596230720
1389831585
注意 DEV 的值大于 MAX_INT,但它工作正常。每当 PROD 的值大于 MAX_INT 时,它只会打印 MAX_INT。
$ yii kw/test
1304682651
2712796608
$ YII_ENV=prod yii kw/test
2147483647
2147483647
2147483647
1596230720
1389831585
Yii 2.0.7、PHP 5.6.19、Windows/Cygwin(开发)、Heroku(生产)
为了以防万一,我还输入了一个错误:https://github.com/yiisoft/yii2/issues/11286
最佳答案
我不得不用这个
$accounts = Account::find()->select(['*', 'google_id' => 'cast(google_id as varchar)'])->all();
但只是在抗议之下。我不喜欢!
警告,如果您使用模式缓存,您可能必须先让它过期,然后才能尝试更改。
'enableSchemaCache' => true,
关于php - YII 无法读取 Postgres 9.4 中的 BIGINT。静默转换为 MAX_INT。适用于 9.5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36440228/
假设我们有一个长度非常大的字符串,比 max_int 还要大。 string str="this should contain a long string"; 如果我想访问 str[100000000
我是 perl 新手,并在 @array 中寻找最低值.是否有一些常数代表一个非常大的整数? 我知道我可以对数组进行排序并开始,但这似乎浪费了很多 CPU 周期。我在 Perl 中的问题的优雅解决方案
在 Java 中,我可以说 Integer.MAX_VALUE 来获取 int 类型可以容纳的最大数字。 Postgres 中是否有类似的常量/函数?我想避免对数字进行硬编码。 编辑:我问的原因是这个
我正在尝试编写我的第一个 iPhone 应用程序,我正在使用一个日期选择器对象让用户输入他们的出生日期。我的应用程序的一部分需要 int 格式的年份。我添加了如下代码。奇怪的是“月”得到了正确的值。但
accept() 或 accept4() 函数返回一个整数,但如果我收到超过 INT_MAX 个客户端连接,会发生什么情况? 最佳答案 What will happen?? accept 调用将失败。
我已经阅读了这个问题的一些答案( Why I can't create an array with large size? 和 https://bugs.openjdk.java.net/browse
我试图追踪一些非常奇怪的 Java 行为。我有一个涉及 double 的公式,但“保证”给出整数答案——具体来说,是一个无符号的 32 位整数(唉,Java 做得不好)。不幸的是,我的回答有时不正确。
由于 BitSet.get() 函数使用 int 作为参数,我在想我是否可以在 中存储超过 2^32 位BitSet,如果是,我将如何检索它们? 我正在做一个 Project Euler 问题,我需要
我在 DEV 和 PROD 中有不同的数据库版本。 DEV 使用的是 Postgres 9.5,而 PROD 使用的是 9.4 版。它适用于 DEV,但不适用于 PROD。我只想读取 BIGINT 字
什么更快: random() % 100; 或 static_cast((random() / 4294967296) * 100); 我真的不知道如何正确地进行基准测试,在我的电脑上看起来更快的东西
我是一名优秀的程序员,十分优秀!