在存储过程中将数组转换为字符串

问题描述

我想使用存储过程将窗体从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>

enter image description here

解决方法

我认为您应该首先查看文档hereDB::insert()需要原始SQL,也许您可​​以将其更改为插入SQL。将其更改为DB::insert('INSERT INTO bpk VALUES(...)',$answers)

另外DB :: insert需要2个参数,第一个是字符串,第二个是数组,但是在第二个参数上,您传递了二维数组,也许您可​​以将$answers[]更改为$answer并且该数组应该是普通数组(据我所知),并且您通过了关联数组,也许您可​​以尝试将在$answer中传递的DB::insert('...',$answers);更改为DB::insert('...',array_values($answers));

祝你好运:)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...