【发布时间】: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 以避免手动编码和解码您的数组。 -
您打算如何存储这些数据?通常,您不会将数组存储在数据库中(例如参见 stackoverflow.com/questions/17371639/… 关于此主题)
-
另外,给定的
DB::INSERT调用对 SQL 注入开放。请不要在任何地方使用它。如果您已经使用 Laravel,请查看有关此主题的任何初学者教程