Недавно я начал использовать Redbean PHP. Так что я не очень хорошо разбираюсь в том, как это работает. До сих пор мне нравится, как просто он делает вещи для меня. Но сегодня я столкнулся с проблемой. Мне нужно хранить номера кредитных карт в таблице. Но как только я сохраняю bean-компонент, номер карты меняется на значение с плавающей запятой (десятичное число).
«1234123412341234» сохраняется как «1.234123412341234e15»
Тип данных «двойной», созданный Redbean, но я дал его в виде строки. Это немного странно для меня, я не очень разбираюсь ни в SQL, ни в PHP. Есть ли способ переопределить, как Redbean создает table. Так что кто-нибудь, пожалуйста, помогите мне. Я что-то пропустил здесь. Ниже приведен мой соответствующий код, а используемая структура — 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
Снимок, показывающий тип данных