ErrorException 数组到字符串的转换 Laravel - 将 JSON 导入 MySQL

Posted

技术标签:

【中文标题】ErrorException 数组到字符串的转换 Laravel - 将 JSON 导入 MySQL【英文标题】:ErrorException Array to string conversion Laravel - Importing JSON to MySQL 【发布时间】:2021-06-28 09:52:46 【问题描述】:

我尝试将 JSON 格式的文件导入 mysql 数据库。我把这段代码放在web.php中:

Route::get('/pages', function()
    $json = file_get_contents(storage_path('posts_and_comments.json'));
    $objs = json_decode($json,true);
    foreach ($objs as $obj)  
        foreach ($obj as $key => $value) 
            $insertArr[Str::slug($key,'_')] = $value;
        
        DB::table('my_likes')->insert($insertArr);
    
    dd("Finished adding data in examples table");
); 

它给了我一个 ErrorException 数组到字符串转换 Laravel。我该如何解决? 谢谢!

【问题讨论】:

【参考方案1】:

您可以尝试将数组编码为 json 对象而不是将其插入到 db 中吗?

foreach ($objs as $obj)  
    foreach ($obj as $key => $value) 
        $insertArr[Str::slug($key,'_')] = json_encode($value);
    
    DB::table('my_likes')->insert($insertArr);

【讨论】:

它给了我错误:TypeError 参数 1 传递给 Illuminate\Database\Query\Builder::insert() 必须是数组类型,给定字符串,在..\routes\web.php 中调用在第 39 行(这是您给定代码的行) $insertArr 的元素可能不是字符串值。您可以打印 $insertArr 的内容并编辑您的问题吗

以上是关于ErrorException 数组到字符串的转换 Laravel - 将 JSON 导入 MySQL的主要内容,如果未能解决你的问题,请参考以下文章

ErrorException 数组到字符串的转换 Laravel - 将 JSON 导入 MySQL

Laravel 雄辩的 all() 方法给出错误“数组到字符串的转换”[关闭]

ErrorException strtotime() 期望参数 1 是字符串,给定数组

helpers.php 第 531 行中的 ErrorException:htmlentities() 期望参数 1 为字符串,给定数组

ErrorException array_column() 期望参数 1 是数组,给定对象

ErrorException (E_ERROR) rawurlencode() 期望参数 1 是字符串,给定对象