RedBean PHP信用卡号码问题

时间:2014-03-26 13:37:37

标签: mysql codeigniter double redbean

我最近开始使用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中输出的快照, enter image description here

显示数据类型的快照 enter image description here

1 个答案:

答案 0 :(得分:3)

您可以将数字的beans元属性设置为 string

$card->setMeta("cast.number", "string"); 

这会将$card->number的任何值保存为varchar。
有关详细信息,请参阅RedBean Internals