如何解决在存储过程中将数组转换为字符串
我想使用存储过程将窗体从laravel插入SQL Server。但是我得到一个错误
数组到字符串的转换
请帮助。
这是我的控制器
for ($i = 0; $i < count($request->qty_req); $i++) {
$answers[] = [
'qty_req' => $request->qty_req[$i],'qty_alc' => $request->qty_req[$i],'komponen' => $request->komponen[$i],'qty_bo'=>$request->qty_bo[$i],'kode_proyek'=>$request->kode_proyek,'nama_proyek'=>$request->nama_proyek,'proyek_sap'=>$request->proyek_sap,'kode_panel'=>$request->kode_panel,'nama_panel'=>$request->nama_panel,'foreman'=>$request->foreman
];
}
DB::insert('EXEC insertBPK ?,?,?',$answers);
这是我的存储过程:
CREATE PROCEDURE insertBPK
@kode_proyek nvarchar(MAX),@nama_proyek nvarchar(MAX),@kode_panel nvarchar(MAX),@nama_panel nvarchar(MAX),@proyek_sap nvarchar(MAX),@foreman nvarchar(MAX),@komponen nvarchar(MAX),@qty_req nvarchar(MAX),@qty_alc nvarchar(MAX),@qty_bo nvarchar(MAX)
AS
BEGIN
INSERT INTO bpk (kode_proyek,nama_proyek,kode_panel,nama_panel,proyek_sap,foreman,komponen,qty_req,qty_alc,qty_bo)
VALUES (@kode_proyek,@nama_proyek,@kode_panel,@nama_panel,@proyek_sap,@foreman,@komponen,@qty_req,@qty_alc,@qty_bo);
END
GO
这是我的刀刃
<td class="text-center" style="width: 100px;">
<input type="number" name="qty_req[]" class="form-control" max="{{$open_qty}}" min="0">
<input type="text" name="komponen[]" value="{{$lk->komponen}}" hidden>
<input type="text" name="qty_bo[]" value="{{$lk->qty_bo}}" hidden>
<input type="text" name="kode_proyek" value="{{$kode_proyek}}" hidden>
<input type="text" name="proyek_sap" value="{{$proyek_sap}}" hidden>
<input type="text" name="nama_proyek" value="{{$nama_proyek}}" hidden>
<input type="text" name="kode_panel" value="{{$kode_panel}}" hidden>
<input type="text" name="nama_panel" value="{{$nama_panel}}" hidden>
</td>
解决方法
我认为您应该首先查看文档here,DB::insert()
需要原始SQL,也许您可以将其更改为插入SQL。将其更改为DB::insert('INSERT INTO bpk VALUES(...)',$answers)
另外DB :: insert需要2个参数,第一个是字符串,第二个是数组,但是在第二个参数上,您传递了二维数组,也许您可以将$answers[]
更改为$answer
并且该数组应该是普通数组(据我所知),并且您通过了关联数组,也许您可以尝试将在$answer
中传递的DB::insert('...',$answers);
更改为DB::insert('...',array_values($answers));
祝你好运:)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。