我最近开始使用Redbean PHP。所以我不太了解它如何处理事情。 到现在为止,我喜欢为我制作东西这么简单。但是我今天遇到了很多问题。我需要将信用卡号码存储到表格中。但是一旦我存储了bean,卡号就会变成浮点(十进制)类型的值。
'1234123412341234'被存储为'1.234123412341234e15'
数据类型是redbean创建的'double',但我给出了一个字符串。这对我来说有点奇怪我不是SQL或PHP的专家。有没有办法覆盖redbean创建表的方式。所以有人请帮助我。我在这里错过了一些东西。以下是我的相应代码,使用的框架是 Codeigniter 。
数据变量
$data = array(
'card_name' => 'Shiva Kumar Avula',
'card_no' => '1234123412341234',
'card_issuer' => 'Visa',
'card_cvv' => '123',
'card_exp_month' => 12,
'card_exp_year' => 2020
);
$card = $this->card_model->create_card($data, TRUE); // Making it primary
模型功能
public function create_card($data, $is_primary = FALSE)
{
$card = R::dispense('card');
$card->name = $data['card_name'];
$card->number = $data['card_no'];
$card->issuer = $data['card_issuer'];
$card->cvv = $data['card_cvv'];
$card->exp_month = $data['card_exp_month'];
$card->exp_year = $data['card_exp_year'];
$card->is_primary = $is_primary;
$card->is_verified = 0;
$card->ts_created = $this->ts_sql;
$card->ts_modified = $this->ts_sql;
$id = R::store($card);
}
phpmyadmin中输出的快照,
显示数据类型的快照
答案 0 :(得分:3)
您可以将数字的beans元属性设置为 string 。
$card->setMeta("cast.number", "string");
这会将$card->number
的任何值保存为varchar。
有关详细信息,请参阅RedBean Internals。