【问题标题】:RedBean PHP credit card number issueRedBean PHP 信用卡号问题
【发布时间】:2014-03-26 13:37:36
【问题描述】:

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

显示数据类型的快照,

【问题讨论】:

  • 这么长的数字真的是一个字符串。你不会对它做任何数学运算。
  • @JohnConde 这就是问题所在,我可能不是 redbean 将其转换为浮点数。

标签: mysql codeigniter double redbean


【解决方案1】:

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

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

这会将$card->number 的任何值保存为varchar。
请参阅RedBean Internals 了解更多信息。

【讨论】:

  • 完美运行。抱歉,我很懒,一天之内就看完了整个文档。压力很大。感谢您的帮助。
猜你喜欢
  • 2011-08-16
  • 2023-03-13
  • 2014-05-12
  • 2013-01-11
  • 1970-01-01
  • 1970-01-01
  • 2014-08-14
  • 2016-10-03
相关资源
最近更新 更多