我是 Laravel 初学者,谁能告诉我如何将数组插入数据库?

Posted

技术标签:

【中文标题】我是 Laravel 初学者,谁能告诉我如何将数组插入数据库?【英文标题】:I am a Laravel beginner, can anyone tell me how I can insert an array into database? 【发布时间】:2021-11-20 06:37:44 【问题描述】:

这些是我要插入数据库的值:

  $name4 = $request['name4'];
  $email4 = $request['email4'];
  $phone = $request['phone'];
  $cat = $request['cat'];
  $rname = $request['rname'];
  $file = $request['file'];
  $ingr = $request['ingr'];
  $qty = $request['qty'];
  $unit = $request['unit'];
  $recp = $request['recp'];
  $items = array(
    'ingredients'  => $ingr,
    'quantity' => $qty,
    'unit'     => $unit
  );

插入查询如下:

DB::INSERT("insert into tbl_contest (name, email, phone, category, recp_name, file, ingredient, recp_desc)" . "values('$name4','$email4','$phone','$cat','$rname','$file','$items','$recp')");

我想将$ingr$qty$unit 添加到ingredient 列中。

谁能帮帮我?

提前致谢

【问题讨论】:

作为 Laravel 初学者:看看 Laravel 文档中的 Eloquent ORM。它会让生活更轻松。 PDO(Laravel 使用)不能将数组转换为目标数据库支持的格式,因为每个数据库可能支持也可能不支持数组,并且每个支持数组的数据库都以不同的方式支持它们。一般来说,将数组作为值放在关系数据库中是一个坏主意,应该改用关系。 您可以添加$items 并插入到接受json 数组对象的JSON 列中。您可以在迁移表中定义 JSON column 并定义 cast 以避免手动编码和解码您的数组。 您打算如何存储这些数据?通常,您不会将数组存储在数据库中(例如参见 ***.com/questions/17371639/… 关于此主题) 另外,给定的DB::INSERT 调用对 SQL 注入开放。请不要在任何地方使用它。如果您已经使用 Laravel,请查看有关此主题的任何初学者教程 【参考方案1】:

$items 变量不能是数组,可以转成json字符串。

$items= json_encode(array(
    'ingredients'  => $ingr,
    'quantity' => $qty,
    'unit'     => $unit
  ));

【讨论】:

以上是关于我是 Laravel 初学者,谁能告诉我如何将数组插入数据库?的主要内容,如果未能解决你的问题,请参考以下文章

谁能告诉我这有啥问题?

我是个VB初学者谁能给我解释一下VB中的 :Exp,log,是干啥的还有怎么用??

Django + OpenLayers?

有人可以通过这个laravel代码告诉我

如何将数组元素反向分配到另一个数组中?我是初学者[重复]

谁能告诉我一个算法来创建一个函数,该函数将数组的所有可能分区返回到 n 个子集中,同时保持数组的顺序?