【问题标题】:how to store array values in single field database using json_encode in luman?如何在 luman 中使用 json_encode 将数组值存储在单字段数据库中?
【发布时间】:2016-11-19 13:04:56
【问题描述】:

如何在 luman 中使用 json_encode 将数组值存储到单字段数据库中?

我从请求中获得价值:

 $qualification_id = array($request->input('qualification_id'));

我的 json 编码行:

$serializedArr=json_encode( $qualification_id);

我的插入查询:

$result = DB::insert("insert into `borrower_registration` 
                          (first_name,middle_name,last_name,city_id,
                            state_id,dob,marital_id,father_husband,
                            institute,qualification_id,graduated_id) 
                       values ('$first_name',' $middle_name','$last_name','$city_id',
                                '$state_id ','$dob ',' $marital_id','$father_husband',
                                '$institute','$serializedArr','$graduated_id')");

我给出了数组 1、2、3、4 的样本输入并使用

 print_r($qualification_id)

并获得类似 [1,2,3,4]

的输出

qualification_id 列的数据类型是int

我执行了代码,它以0的形式存储在数据库中。请提出宝贵的建议。

【问题讨论】:

  • 为什么突然决定停止双引号字符串将$serializedArr值添加到值列表中?
  • 首先向我们展示print_r($qualification_id) and then an echo $serializedArr;` 使用这两行的输出编辑问题
  • 还向我们展示您的架构中 qualification_id 列的数据类型
  • 顺便说一句,在一个字符串列中存储多个键是一个完全坏主意。
  • qualification_id的DATA TYPE更改为TEXT或VARCHAR,或者如果您使用的是mysql5.7版本,则可能是JSON

标签: php json web-services laravel


【解决方案1】:

检查qualification_id 列是否具有JSONTEXT 格式。

【讨论】:

  • 严格来说,列数据类型 JSONTEXTVARCHAR 不会对插入产生任何影响,只要数据实际上是字符串
  • @AshwinSakthi,所以你试图将JSON 数据持久化为INT,这就是你得到0 的原因。尝试将其更改为JSONTEXT
  • 如果你可以print_r($serializedArr); 那么它不是一个字符串它仍然是一个 PHP 数组
  • @AlexeyMezenin,嗨,我将 int 更改为 text,它显示了一些错误。
  • @AshwinSakthi 你没有告诉任何关于错误的信息,你说你得到了0。如果您遇到错误,请在此处发布。如果它仍然是0,如果你把它放在$serializedArr = json_encode($qualification_id); 之后,dd($serializedArr); 会显示什么?
猜你喜欢
  • 2011-07-17
  • 1970-01-01
  • 1970-01-01
  • 2016-06-21
  • 1970-01-01
  • 2019-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多